1

QTアプリケーションでは、ベースナビゲーションにQTabWidgetを使用しています。このQTabWidgetはUIでセットアップしました。QTabWidgetの一部のタブでは、「ビューをドリルダウン」できるようにQStackedWidgetが必要です。

UI内にもQStackedWidgetを追加しようとしましたが、スタックにページが自動的に追加されます。代わりに、QStackedWidgetのページをコードで追加したいと思います。コード内でこれを実行しようとすると、stackedWidgetにはすでに標準ページがあるため、myWidgetはスタックの2番目になります。

MyWidget *myWidget = new MyWidget(ui.stackedWidget);
ui.stackedWidget->addWidget(myWidget);

QTabWidgetタブ内にQStackedWidgetをセットアップするための最良かつ最も簡単な方法は何ですか?

4

2 に答える 2

1

どうですか:

QTabWidget *myTabWidget = new QTabWidget(this);
QStackedWidget *myStackedWidget = new QStackedWidget(myTabWidget);

myTabWidget->addTab(myStackedWidget, "Stacked Widget");

また、QtのDesigner/Creatorで既存のスタックページをすべて削除することもできます。スタックされたウィジェットを右クリックして、既存のページをすべて削除します。次に、を使用してコードに必要なページを追加できますaddWidget()

于 2010-01-26T09:57:19.983 に答える
0

私は言います-あなたがするのと同じようにUIでそれを作成します(これにより、レイアウト/配置、後でタブに他のウィジェットを追加するなどが簡単になります)が、コードから既存のすべてのページ(デザイナーによって追加された)を削除して追加するだけですあなたの新しいもの。

実際、Qt 4.6のDesignerでは、スタックウィジェットからすべてのページを削除できます。右クリックしてサブメニュー[Page X of Y]に移動し、[削除]を選択する必要があります。すべてのページがなくなるまで繰り返します:)

たぶんこれは最近Designerに追加されたので、以前のバージョンのQtを使用している場合は、コードからそれらを削除する必要があるかもしれません。

コード内に保持するのではなく、UI内にあるものを保持することについて言えば、「できるだけ多くのUIファイルに」投票します:)

于 2010-01-26T11:37:38.980 に答える