私は2つのレイアウトを持っています -layout1
そしてlayout2
. ウィジェットの種類の数という点で、両方がまったく異なるとしましょう。今私は 2 つのボタンbut1
とbut2
. but1
がクリックされたときlayout1
にアクティブになり、but2
がクリックされたときにアクティブになりますlayout2
。Qtでこれを達成するにはどうすればよいですか?
注: ウィジェット (またはレイアウト) を削除したくありません
QStackedWidget* stackedWidget = new QStackedWidget;
QWidget* parentLayout1 = new QWidget;
QWidget* parentLayout2 = new QWidget;
QGridLayout* layout1 = new QGridLayout(parentLayout1);
QGridLayout* layout2 = new QGridLayout(parentLayout2);
stackedWidget->addWidget(parentLayout1);
stackedWidget->addWidget(parentLayout2);
stackedWidget->widget(1)->show();
次に、必要に応じてそれらを非表示にして表示します。問題について自分で QStackedLayout を試しましたが、うまく機能しませんでしたが、上記の解決策はうまくいくはずです。現在取り組んでいるプロジェクトで使用しましたが、ウィジェットを切り替えるパフォーマンスはおそらく QStackedLayout と同じです。明らかに、私があなたに提供したのはコードの必要最小限のものですが、それはあなたの役に立つはずです. その後の質問はお知らせください。また、必要なタイプのレイアウトを使用することもできます。QGridLayout である必要はありません。それがまさに私が使用したものです。
これには QStackedLayout または QStackedWidget を使用する必要があります。