2

私は2つのレイアウトを持っています -layout1そしてlayout2. ウィジェットの種類の数という点で、両方がまったく異なるとしましょう。今私は 2 つのボタンbut1but2. but1がクリックされたときlayout1にアクティブになり、but2がクリックされたときにアクティブになりますlayout2。Qtでこれを達成するにはどうすればよいですか?

注: ウィジェット (またはレイアウト) を削除したくありません

4

2 に答える 2

3
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 である必要はありません。それがまさに私が使用したものです。

于 2013-03-04T20:45:19.447 に答える
0

これには QStackedLayout または QStackedWidget を使用する必要があります。

于 2013-03-04T19:17:54.780 に答える