【发布时间】:2013-03-25 10:29:22
【问题描述】:
我最近迁移到 Qt5 并遇到了一个我在 Qt4 中没有遇到的问题。
我有一个模态对话框,它需要有一个固定的高度但可以调整大小的宽度。为了演示,这里有一个精简版。
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 的插槽,就像@987654328 @ 多于。当我调整对话框大小时,有时它的当前高度超过了它的最大高度。这怎么可能?!
【问题讨论】: