Qt学习Qt

Qt使用技巧

2019-09-23  本文已影响0人  玖零儛

记录下一些使用Qt的小技巧

快捷操作

多线程编译加速(仅Mingw)

qrc文件不及时更新

qss文件在qrc资源文件中,修改qss文件不重新构建不会更新。可以通过修改qrc文件的时间属性,让编译器能够检测到文件修改并重新编译,在qrc文件目录下:touch xxx.qrc即可。

构建库时安装到指定目录

  1. 在pro配置的相关文件
target.path = $$LIB_INSTALL_ROOT/XXX
headers.path = $$INCLUDE_INSTALL_ROOT/XXX
XXX.h

INSTALLS += target \
headers
  1. 构建->添加步骤->Make->参数加上install

Qt信号连接重载写法

connect(m_pBtn, QOverload<bool>::of(&MyButton::sigClicked),this,&Widget::onClicked);

修改带UI的界面类继承的基类

  1. .h、.cpp 将父类改成QDialog
  2. 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
    }
}
上一篇下一篇

猜你喜欢

热点阅读