在上一个问题中,我得到了代码,该代码显示了heightForWidth()
(感谢@Kuba Ober)的实现,但它仅适用于顶级QWidget
. 我试图为 a 复制它QMainWindow
,但它没有用。
这是heightForWidth()
适用于顶级的代码QWidget
:
QWidget w;
QVBoxLayout * l = new QVBoxLayout(&w);
l->addWidget(new Widget);
w.show();
这就是我尝试为 QMainWindow 实现相同的地方,但在这里它heightForWidth()
没有效果(即使它被调用):
QMainWindow mainWnd;
QWidget *w = new QWidget;
QVBoxLayout * l = new QVBoxLayout(w);
l->addWidget(new Widget);
mainWnd.setCentralWidget(w);
// Second widget to take unused space.
QFrame * btm = new QFrame;
btm->setFrameShape(QFrame::Panel);
btm->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
l->addWidget(btm);
mainWnd.show();
那么为什么QMainWindow
实施不起作用呢?