Qt常見問題01
1 問題:加上Q_OBJECT后出現(xiàn)undefined reference to錯(cuò)誤。
解決:重新編譯。
其他:信號(hào)槽的生效需要Q_OBJECT的支撐。
2 問題:如何彈出對(duì)話框。
解決:繼承QDialog,然后通過對(duì)象的exec來彈出。
分析:QWidget的模式與非模式區(qū)別:非模式窗口就是運(yùn)行在應(yīng)用程序中,對(duì)于任何其他窗口都是獨(dú)立窗口,用show()調(diào)用。模式窗口就是當(dāng)它被調(diào)用而彈出的時(shí)候,它會(huì)阻塞這個(gè)應(yīng)用程序,直到這個(gè)窗口被關(guān)閉,發(fā)生的其他任何處理或者交互才能繼續(xù)運(yùn)行,用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ù)字符的長(zhǎng)度決定是否顯示省略號(hào)"..."。
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即可。
解決:重新編譯。
其他:信號(hào)槽的生效需要Q_OBJECT的支撐。
2 問題:如何彈出對(duì)話框。
解決:繼承QDialog,然后通過對(duì)象的exec來彈出。
分析:QWidget的模式與非模式區(qū)別:非模式窗口就是運(yùn)行在應(yīng)用程序中,對(duì)于任何其他窗口都是獨(dú)立窗口,用show()調(diào)用。模式窗口就是當(dāng)它被調(diào)用而彈出的時(shí)候,它會(huì)阻塞這個(gè)應(yīng)用程序,直到這個(gè)窗口被關(guān)閉,發(fā)生的其他任何處理或者交互才能繼續(xù)運(yùn)行,用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ù)字符的長(zhǎng)度決定是否顯示省略號(hào)"..."。



5 QGridLayout與控件的高度問題
用QGridLayout來調(diào)整布局,在設(shè)置了QGridLayout的layoutRowMinimumHeight為25后,其中部分控件的高度仍然沒有25。
QLabel:25,QDateEdit:20,QLineEdit:20,QComboBox:20
解決方法:
將QDateEdit,QLineEdit,QComboBox的屬性sizePolicy的垂直策略修改為Expanding即可。
posted on 2011-03-01 17:06 seahouse 閱讀(1539) 評(píng)論(0) 編輯 收藏 引用 所屬分類: Qt