记录下一些使用Qt的小技巧
快捷操作
- 快速从函数声明创建函数定义,Alt+Enter
- 跳转到定义处,F2
- 搜索鼠标当前位置单词,F3
- .h、.cpp切换,F4
- 查找用过某个变量or函数的地方,单词上右键->Find Usages
- 定位器使用:过滤器前缀 + "空格" + 定位内容,e.g.查找名字为save()的函数:m save
- 添加虚函数实现:类名上右键->Refactor->Insert Virtual Functions
- 查看类的继承:Ctrl+Shift+T
多线程编译加速(仅Mingw)
- 对所有项目操作,在构建套件的环境中增加
MAKEFLAGS=-j8
- 对单个项目操作,项目->构建步骤->Make详情->Make参数,添加:-j8
qrc文件不及时更新
qss文件在qrc资源文件中,修改qss文件不重新构建不会更新。可以通过修改qrc文件的时间属性,让编译器能够检测到文件修改并重新编译,在qrc文件目录下:touch xxx.qrc
即可。
构建库时安装到指定目录
- 在pro配置的相关文件
target.path = $$LIB_INSTALL_ROOT/XXX
headers.path = $$INCLUDE_INSTALL_ROOT/XXX
XXX.h
INSTALLS += target \
headers
- 构建->添加步骤->Make->参数加上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文件需要添加下面内容,否则不会抽取qml中字符串
lupdate_only {
SOURCES += SignIn/qml/SignInQmlView.qml
}
程序图标版本号设置
//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);
//重新设置新的该控件的样式。
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;
}
根据操作系统位数判断加载
win32 {
contains(DEFINES, WIN64) {
DESTDIR = $${PWD}/../../bin64
}else {
DESTDIR = $${PWD}/../../bin32
}
}
网友评论