1 問題:加上Q_OBJECT后出現(xiàn)undefined reference to錯誤。
解決:重新編譯。
其他:信號槽的生效需要Q_OBJECT的支撐。
2 問題:如何彈出對話框。
解決:繼承QDialog,然后通過對象的exec來彈出。
分析:QWidget的模式與非模式區(qū)別:非模式窗口就是運行在應(yīng)用程序中,對于任何其他窗口都是獨立窗口,用show()調(diào)用。模式窗口就是當(dāng)它被調(diào)用而彈出的時候,它會阻塞這個應(yīng)用程序,直到這個窗口被關(guān)閉,發(fā)生的其他任何處理或者交互才能繼續(xù)運行,用exec()調(diào)用。
3 問題:std::string與QString轉(zhuǎn)換。
解決:QString qstring = "Test String";
string stlstring = qstring.latin1()
QString qsecond = stlstring.c_str();
QString qstr = QString::fromStdString(str);
4 QLabel根據(jù)字符的長度決定是否顯示省略號"..."。
QFont font(ui->label->font());
QFontMetrics fm(font);
ui->label->setText(fm.elidedText(aaa, Qt::ElideRight, ui->label->width());
5 QGridLayout與控件的高度問題
用QGridLayout來調(diào)整布局,在設(shè)置了QGridLayout的layoutRowMinimumHeight為25后,其中部分控件的高度仍然沒有25。
QLabel:25,QDateEdit:20,QLineEdit:20,QComboBox:20
解決方法:
將QDateEdit,QLineEdit,QComboBox的屬性sizePolicy的垂直策略修改為Expanding即可。