Qt開發經驗小技巧41 50

2022-01-29 08:39:44 字數 1398 閱讀 6453

如果使用sqlite資料庫不想產生資料庫檔案,可以建立記憶體資料庫。

qsqldatabase db = qsqldatabase::adddatabase("qsqlite");

db.setdatabasename(":memory:");

清空資料表並重置自增id,sql = truncate table table_name。

qtchart模組從qt5.7開始自帶,最低編譯要求qt5.4。在安裝的時候記得勾選,預設不勾選。使用該模組需要引入命名空間。

#include qt_charts_use_namespace

class customchart : public qchartview

qpushbutton左對齊文字,需要設定樣式表qpushbutton

qlabel有三種設定文字的方法,掌握好qt的屬性系統,舉一反三,可以做出很多效果。

ui->label->setstylesheet("qproperty-text:hello;");

ui->label->setproperty("text", "hello");

ui->label->settext("hello");

巧妙的用qeventloop開啟事件迴圈,可以使得很多同步獲取返回結果而不阻塞介面。qeventloop內部新建了執行緒執行。

qeventloop loop;

connect(reply, signal(finished()), &loop, slot(quit()));

loop.exec();

多種預定義變數 #if (defined webkit) || (defined webengine)。

新版的qtcreator增強了語法檢查,會彈出很多警告提示等,可以在外掛程式列表中關閉clang打頭的幾個即可,help》about plugins。也可以設定**檢查級別,tools》options 》c++ 》code model。

qsqltablemodel的rowcount方法,預設最大返回256,如果超過256,可以將**拉到底部,會自動載入剩餘的,每次最大載入256條資料,如果需要列印或者匯出資料,記得最好採用sql語句去查詢,而不是使用qsqltablemodel的rowcount方法。不然永遠最大只會匯出256條資料。

如果資料量很小,也可以採用如下方法:

//主動載入所有資料,不然獲取到的行數<=256

while(model->canfetchmore())

如果需要指定無邊框窗體,但是又需要保留作業系統的邊框特性,可以自由拉伸邊框,可以使用 setwindowflags(qt::customizewindowhint);

qt開發經驗開源主頁(持續更新):

Qt開發經驗小技巧1 10

當編譯發現大量錯誤的時候,從第乙個看起,乙個乙個的解決,不要急著去看下乙個錯誤,往往後面的錯誤都是由於前面的錯誤引起的,第乙個解決後很可能都解決了。定時器是個好東西,學會好使用它,有時候用qtimer singleshot可以解決意想不到的問題。開啟creator,在構建套件的環境中增加makefl...

Qt開發經驗小技巧11 20

獲取類的屬性 const qmetaobject metaobject object metaobject int count metaobject propertycount for int i 0 i count i qt內建圖示封裝在qstyle中,大概七十多個圖示,可以直接拿來用。qstyl...

Qt開發經驗小技巧31 40

判斷msvc編譯器版本。if msc ver 1800 msvc 14.0 msc ver 1900 visual studio 2015 msvc 12.0 msc ver 1800 visual studio 2013 msvc 11.0 msc ver 1700 visual studio 2...