QT- QWidgetレイアウトを変更します
質問
私たちが持っていると考えてみましょう QWidget
そしてa QLayout
名前が付けられました general_layout
他のウィジェットとレイアウトが含まれています。 general_layout
として設定されています QWidget
このようなレイアウト:
setLayout(general_layout)
今、私はのコンテンツを変更する必要があります QWidget
. 。どうやってやるの?私は削除して新しいレイアウトを作成しようとしました QWidget
そして、その新しいレイアウトはのレイアウトとして設定されました QWidget
, 、しかし、私の意図を正常に完了することができませんでした。
これは私のコードです:
delete general_layout;
general_layout = new QHBoxLayout;
general_layout->addLayout(some_layout);
myQWidget->setLayout(general_layout);
解決
問題は、レイアウトの削除時にレイアウトのウィジェットが破壊されないことです。これにより、レイアウトがなくても、MyQwidgetのすべての子供ウィジェットがまだ存在しています。
解決策は単純です:aを追加します
qDeleteAll(myQWidget->children());
後
delete general_layout;
所属していません StackOverflow