私はかなり基本的なQtの問題を抱えていると思いますが、それを理解することはできません:
QStackedWidgetを保持するQMainWindowがあります。そこにあるすべてのページウィジェットには、QWidgetから派生した個別のクラスがあります。
それで:
QMainWindowは、QStackedWindowを1つのクラスに実装します。スタックウィジェット内の他のすべてのページには追加されたクラスがあり、すべてのページには、Designerを介したボタンとリストで満たされた独自の.uiがあります。
別のページに移動するために、メインウィンドウ内で次の場所にアクセスできます。ui.stackedWidget->setCurrentIndex(2);
スタックウィジェット内の別のページにあるui.stackedWidgetにアクセスできないようです。Uiはメインウィンドウクラスのプライベートメンバーであるため、ui.stackedWidgetにアクセスできません。(Qtによって自動生成-QT4クラスを追加するためにVSアドオンを使用)
このウィジェット内の別のページに属するボタンをクリックしたときに、スタックウィジェット内の別のページにジャンプするにはどうすればよいですか?
ノート:
すべてのページは、mainWIndowのコンストラクターのStackedWidgetに追加されます。
ui.stackedWidget->addWidget(page1Widget);
ui.stackedWidget->addWidget(page2Widget);
// etc..
page1Widget内のボタンクリック信号スロットの例:
connect(ui.btnViewData, SIGNAL(clicked()), this, SLOT(viewData()));
::viewData()
{
// navigate to another page here.
// note: ui.stackedWidget->setCurrentIndex(3); is not accessible here!
}