做爲一個QT(C++/linux/windows)開發工程師,把本身在工做中遇到的一些QT問題持續總結給你們,一塊兒分享:linux
1、隱藏鼠標:QApplication::setOverrideCursor(Qt::BlackCursor);windows
2、條件編譯debug和release:ide
CONFIG +=debug_and_release測試
CONFIG(debug,debug|release)ui
{spa
//生成位置debug
DESTDIR+=$$PWD/debug開發
//庫依賴get
LIBS += -L$$PWD/ -lprotobufstring
}else{
}
3、屏蔽release版本中全部QDebug()提示信息,能夠在pro文件中添加DEFINES+=QT_NO_DEBUG_OUTPUT
4、窗體至於父窗體之上:QWidget->raise();這塊注意區分QDialog的模態和非模態
5、中文顯示亂碼:QStringLiteral("中文");或者QString::toLocal8Bit();
6、獲取linux的hostname:QHostInfo::localHostName();
7、子控件不受父控件的影響:QLabel->setStyleSheet("#objectName{background-color:black}");這裏注意用#objectName
8、QT信號槽不支持類型的狀況下須要測試此類型:
qRegisterMetaType<std::string> (「std::string」);
qRegisterMetaType<std::string> (「std::string&」);
9、用一個pro工程加載和編譯若干個工程,這樣加載一個工程便可所有加載,無需一個個打開添加pro,編譯同樣:
新建一個Alllib工程,在Alllib.pro裏面添加:
TEMPLATE = subdirs
SUBDIRS += ../tmp1
SUBDIRS += ../tmp2
。。。。。。。。。
10、error:"QApplication:No Such file or direction":
Qt5裏再也不用QtGui模塊,而是使用QtWidgets模塊
解決方法:在pro文件裏面添加:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets