欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

QT总结

程序员文章站 2022-06-24 11:27:02
作为一个QT(C++/linux/windows)开发工程师,把自己在工作中遇到的一些QT问题持续总结给大家,一起分享: 一、隐藏鼠标:QApplication::setOverrideCursor(Qt::BlackCursor); 二、条件编译debug和release: CONFIG +=de ......

作为一个qt(c++/linux/windows)开发工程师,把自己在工作中遇到的一些qt问题持续总结给大家,一起分享:

 

 

一、隐藏鼠标:qapplication::setoverridecursor(qt::blackcursor);

 

二、条件编译debug和release:

config +=debug_and_release

config(debug,debug|release)

{

//生成位置

destdir+=$$pwd/debug

//库依赖

libs += -l$$pwd/ -lprotobuf

}else{

}

 

三、屏蔽release版本中所有qdebug()提示信息,可以在pro文件中添加defines+=qt_no_debug_output

 

四、窗体至于父窗体之上:qwidget->raise();这块注意区分qdialog的模态和非模态

 

五、中文显示乱码:qstringliteral("中文");或者qstring::tolocal8bit();

 

六、获取linux的hostname:qhostinfo::localhostname();

 

七、子控件不受父控件的影响:qlabel->setstylesheet("#objectname{background-color:black}");这里注意用#objectname

 

八、qt信号槽不支持类型的情况下需要测试此类型:

qregistermetatype<std::string> (“std::string”);

qregistermetatype<std::string> (“std::string&”);

 

九、用一个pro工程加载和编译若干个工程,这样加载一个工程即可全部加载,无需一个个打开添加pro,编译一样:

新建一个alllib工程,在alllib.pro里面添加:

template = subdirs

subdirs += ../tmp1

subdirs += ../tmp2

。。。。。。。。。

 

十、error:"qapplication:no such file or direction":

qt5里不再用qtgui模块,而是使用qtwidgets模块

解决方法:在pro文件里面添加:greaterthan(qt_major_version, 4): qt += widgets