を追加した testFrame を使用QDialog
してデザイナーで作成しました。すべてが作成されて表示された後のある時点で、 を親としてプログラムで新しいウィジェットを作成しようとしています。何を試しても、新しいウィジェットは表示されません:QFrame
QHBoxLayout
QFrame
init() メソッドの終わり:
QBoxLayout *testFrameLayout = new QHBoxLayout(this->testFrame); //QT3 docs use QBoxLayout pointer when creating QHBoxLayout
イベント中 (別のボタンが押されたなど)
testButton = new QPushButton(this->testFrame);
testButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed, false);
testButton->setMaximumWidth(50);
testButton->setMaximumHeight(50);
testButton->setMinimumWidth(50);
testButton->setMinimumHeight(50);
testFrameLayout->addWidget(testButton);
さまざまなウィジェット、コンテナー クラス (たとえばQGrid
、レイアウトを管理する必要がない場合)、update()/repaint() の呼び出し (testFrame、testButton、ダイアログ自体) などでこの動作が得られます。 init() で行われた場合、ダイアログが表示された後に行われた場合はそうではありません。私は何かが欠けているに違いないので、助けていただければ幸いです!
注: Qt 3 を使用する非常に大規模なプロジェクトに取り組んでいるため、ソリューションはこのバージョンと互換性がある必要があります。