前の質問で、動作する(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実装が機能しないのでしょうか。