QStackedWidget从页面导航到页面

我想我有一个相当基本的Qt问题,但我无法弄清楚:

我有一个包含QStackedWidget的QMainWindow。 那里的所有页面小部件都是从QWidget派生的独立类。

所以:

QMainWindow在一个类中实现了QStacked Window。 堆叠窗口小部件中的所有其他页面都添加了类,并且所有其他页面都有自己的.ui,通过设计器填充按钮和列表。

为了导航到不同的页面,在主窗口中我可以访问: ui.stackedWidget->setCurrentIndex(2);

似乎我无法访问堆叠小部件内的另一个页面上的ui.stackedWidget? 我无法访问ui.stackedWidget,因为Ui是mainwindow类中的私有成员。 (由Qt自动生成 - 使用VS插件添加QT4类)

我想知道,当点击属于此小部件内的另一个页面的按钮时,如何跳转到堆叠小部件中的另一个页面?

注意:

所有页面都添加到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!
}

我相信把你的connect()和viewData()函数放在你的QMainWindow对象中可以解决你的问题,因为主窗口可以访问子窗口小部件和QStackedWidget项目所使用的信号。

您可能需要为每个页面编写一个UI吸气器,然后执行类似操作

connect(page1Widget->getUi().btnViewData, SIGNAL(clicked()), this, SLOT(viewData)));

希望它有帮助,欢呼

链接地址: http://www.djcxy.com/p/39293.html

上一篇: QStackedWidget navigation from page to page

下一篇: Secondary window without slot