前の質問で、動作する(thanks, @Kuba Ober)の実装を示すコードが与えられましたheightForWidth()
が、それはトップレベルのQWidget
. 用に再現しようとしました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
実装が機能しないのでしょうか。