記錄下一些使用Qt的小技巧
快捷操作
- 快速從函數(shù)聲明創(chuàng)建函數(shù)定義,Alt+Enter
- 跳轉(zhuǎn)到定義處,F(xiàn)2
- 搜索鼠標當(dāng)前位置單詞,F(xiàn)3
- .h、.cpp切換,F(xiàn)4
- 查找用過某個變量or函數(shù)的地方,單詞上右鍵->Find Usages
- 定位器使用:過濾器前綴 + "空格" + 定位內(nèi)容,e.g.查找名字為save()的函數(shù):m save
- 添加虛函數(shù)實現(xiàn):類名上右鍵->Refactor->Insert Virtual Functions
- 查看類的繼承:Ctrl+Shift+T
多線程編譯加速(僅Mingw)
- 對所有項目操作,在構(gòu)建套件的環(huán)境中增加
MAKEFLAGS=-j8 - 對單個項目操作,項目->構(gòu)建步驟->Make詳情->Make參數(shù),添加:-j8
qrc文件不及時更新
qss文件在qrc資源文件中,修改qss文件不重新構(gòu)建不會更新。可以通過修改qrc文件的時間屬性,讓編譯器能夠檢測到文件修改并重新編譯,在qrc文件目錄下:touch xxx.qrc即可。
構(gòu)建庫時安裝到指定目錄
- 在pro配置的相關(guān)文件
target.path = $$LIB_INSTALL_ROOT/XXX
headers.path = $$INCLUDE_INSTALL_ROOT/XXX
XXX.h
INSTALLS += target \
headers
- 構(gòu)建->添加步驟->Make->參數(shù)加上install
Qt信號連接重載寫法
connect(m_pBtn, QOverload<bool>::of(&MyButton::sigClicked),this,&Widget::onClicked);
修改帶UI的界面類繼承的基類
- .h、.cpp 將父類改成QDialog
- ui文件用編輯器打開, “<widget class="QWidget"...” ,將class值改為QDialog
語言家抽取qml中翻譯字符串
//pro文件需要添加下面內(nèi)容,否則不會抽取qml中字符串
lupdate_only {
SOURCES += SignIn/qml/SignInQmlView.qml
}
程序圖標版本號設(shè)置
//pro文件中寫上標記版本號+ico圖標
VERSION = 2018.7.25
win32:RC_ICONS = main0.ico
管理員運行程序,限定在MSVC編譯器
//pro文件添加
QMAKE_LFLAGS +=/MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\" #以管理員運行
QMAKE_LFLAGS +=/SUBSYSTEM:WINDOWS,\"5.01\" #VS2013 在XP運行
移除舊的樣式
style()->unpolish(ui->btn);
//重新設(shè)置新的該控件的樣式。
style()->polish(ui->btn);
獲取類的屬性
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;
}
根據(jù)操作系統(tǒng)判斷加載
macx {
QMAKE_INFO_PLIST = resource/app/Info.plist
ICON = resource/app/fstl.icns
}
win32 {
RC_FILE = resource/exe/fstl.rc
}
linux {
target.path = /usr/bin
INSTALLS += target
}