您好,登錄后才能下訂單哦!
這篇文章主要講解了“Qt使用技巧有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Qt使用技巧有哪些”吧!
獲取類的屬性
const QMetaObject *metaobject = object->metaObject(); int count = metaobject->propertyCount(); for (int i = 0; i < count; ++i) { QMetaProperty metaproperty = metaobject->property(i); const char *name = metaproperty.name(); QVariant value = object->property(name); qDebug() << name << value; }
Qt內置圖標封裝在QStyle中,大概七十多個圖標,可以直接拿來用。 QStyle::SP_TitleBarMenuButton
根據操作系統位數判斷加載
win32 { contains(DEFINES, WIN64) { DESTDIR = $${PWD}/../../bin64 } else { DESTDIR = $${PWD}/../../bin32 } }
Qt5增強了很多安全性驗證,如果出現setGeometry: Unable to set geometry,請將該控件的可見移到加入布局之后。
可以將控件A添加到布局,然后控件B設置該布局,這種靈活性大大提高了控件的組合度,比如可以在文本框左側右側增加一個搜索按鈕,按鈕設置圖標即可。
QPushButton *btn = new QPushButton; btn->resize(30, ui->lineEdit->height()); QHBoxLayout *layout = new QHBoxLayout(ui->lineEdit); layout->setMargin(0); layout->addStretch(); layout->addWidget(btn);
對QLCDNumber控件設置樣式,需要將QLCDNumber的segmentstyle設置為flat。
巧妙的使用findChildren可以查找該控件下的所有子控件。findChild為查找單個。
//查找指定類名objectName的控件 QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname"); //查找所有QPushButton QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>(); //查找一級子控件,不然會一直遍歷所有子控件 QList<QPushButton *> childButtons = parentWidget.findChildren<QPushButton *>(QString(), Qt::FindDirectChildrenOnly);
巧妙的使用inherits判斷是否屬于某種類。
QTimer *timer = new QTimer; // QTimer inherits QObject timer->inherits("QTimer"); // returns true timer->inherits("QObject"); // returns true timer->inherits("QAbstractButton"); // returns false
使用弱屬性機制,可以存儲臨時的值用于傳遞判斷。可以通過widget->dynamicPropertyNames()列出所有弱屬性名稱,然后通過widget->property("name")取出對應的弱屬性的值。
在開發時, 無論是出于維護的便捷性, 還是節省內存資源的考慮, 都應該有一個 qss 文件來存放所有的樣式表, 而不應該將 setStyleSheet 寫的到處都是。如果是初學階段或者測試階段可以直接UI上右鍵設置樣式表,正式項目還是建議統一到一個qss樣式表文件比較好,統一管理。
感謝各位的閱讀,以上就是“Qt使用技巧有哪些”的內容了,經過本文的學習后,相信大家對Qt使用技巧有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。