QWidget::setFixedHeight()不工作/仍然可调整大小
QWidget::setFixedHeight() not working/still resizable
我最近搬到了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
的插槽,就像上面的qDebug()
一样。当我调整对话框的大小时,有时它的当前高度超过了它的最大高度。这怎么可能?!
我发现了这个SO帖子,在这个投票最多的回答中,我可以读到在顶级窗口设置大小策略不起作用。也许如果你在你的对话框中使用setLayout()
方法,并在你的对话框的主布局中使用setFixedHeight()
,那么它就会起作用。
或者你可以覆盖你的对话框的resizeEvent()
和手动禁用所有的高度变化…
相关文章:
- 如何创建可调整大小和固定大小的容器的变体
- 是否有提供可调整 dpi、可选文本和 CSS 支持的 HTML 到 PDF 渲染器?
- 将添加的列初始化为可调整大小的 2D 向量
- 可滚动的背景,上面有可调整大小的Qt小部件
- 用std::vector编写可调整大小的矢量时出现问题
- 使用固定的顶部坐标创建可调整大小的窗口
- 灵活的可调整大小的阵列C++
- 如何使Qt小部件可调整大小
- 带有指针的可调整大小数组
- 可调整大小的动态二维阵列的更好解决方案
- wxWidgets可调整大小的窗格
- 如何为Windows应用程序创建可移动/可调整大小/可配置的工具栏
- 在winforms中创建可移动和可调整大小的行
- WinAPI:创建可调整大小的窗口,没有标题栏,但有最小化/最大化/关闭按钮(如Firefox/Chrome/Opera
- 如何在Qt Creator中添加可调整大小的QVBoxLayout ?
- 可调整大小的窗口与可调整大小的圆圈
- 如何使Qt的边框布局项目可调整大小?
- QWidget::setFixedHeight()不工作/仍然可调整大小
- 如何在wxwidgets中创建可调整大小的面板
- 有没有比存在allocator_type更好的方法来区分可调整大小的容器