使QMainWindow只能水平调整大小 - 也就是说,宽度可调整大小,但高度是固定的

sas*_*alm 4 c++ layout qt resize qmainwindow

我可以制作一个QMainWindow,网格布局只能水平调整,而不能垂直调整吗?

我希望它的垂直尺寸是保持所有按钮/线条编辑所需的最小尺寸.

doc*_*eer 6

是的你可以.由于QMainWindow继承自QWidget,因此使用QWidget 大小策略设置仅允许在水平方向上调整大小.

如果在Qt Designer中工作,请将垂直尺寸策略设置为固定,将最小高度设置为所需高度.在代码中:

QMainWindow *mainWindow = new QMainWindow();
mainWindow->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
Run Code Online (Sandbox Code Playgroud)

使用绝对固定大小时要小心,因为控件可能仍需要垂直增长(例如,用户在其桌面上设置高DPI字体).


sas*_*alm 2

我在一本书的一个例子中看到了另一种方式,名为“C++ GUI Programming with Qt 4”。他们做到了

    setFixedHeight(sizeHint().height());
Run Code Online (Sandbox Code Playgroud)