我最近搬到Qt5,遇到了一個問題,我沒有得到Qt4。QWidget :: setFixedHeight()不工作/仍然可以調整大小
我有一個模式對話框,需要有一個固定的高度,但可調整的寬度。爲了演示這裏是一個精簡版本。
QDialog dialog;
QHBoxLayout hLayout;
QLineEdit lineEdit;
QPushButton button("Check Current Height");
hLayout.addWidget(&lineEdit);
hLayout.addWidget(&button);
dialog.setLayout(&hLayout);
dialog.setFixedHeight(dialog.sizeHint().height());
qDebug() << dialog.height()
<< dialog.sizeHint().height()
<< dialog.minimumHeight()
<< dialog.maximumHeight();
dialog.exec();
即使我使用setMinimumHeight & setMaximumHeight代替setFixedHeight的它仍然是調整大小。
在上面的例子中,所有送入qDebug的東西都顯示爲相等。如果最小和最大高度相等,則對話框不應調整大小。但在這裏,它是。
這裏值得一提的是,沒有setFixedHeight對話框是完全可調整大小的,但是使用setFixedHeight對話框只能調整到某個點。
更新:我已經連接到button
輸出dialog
的minimumHeight
,maximumHeight
,sizeHint.height()
和電流height
就像上面的qDebug()
的狹槽。當我調整對話框的大小時,有時候它的當前高度會超過它的最大高度。這怎麼可能?!
我不是設置sizepolicy,我設置fixedHeight固定高度。看看我的代碼。對不起,但我可能會倒下你的答案。 – 2013-03-25 11:04:22
更新:檢查文檔後,QHBoxLayouts沒有setFixedHeight()方法。要降低你的答案。 編輯:哎呀,看起來像我不能。好吧。 – 2013-03-25 11:15:49