首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面间的QStackedWidget导航

页面间的QStackedWidget导航
EN

Stack Overflow用户
提问于 2013-02-24 19:09:59
回答 1查看 13.2K关注 0票数 5

我想我有一个相当基本的Qt问题,但我不能解决它:

我有一个装有QStackedWidget的QMainWindow。其中的所有页面小部件都是从QWidget派生的独立类。

所以:

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

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

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

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

注意:

所有页面都被添加到mainWIndow的构造函数中的StackedWidget中:

代码语言:javascript
复制
ui.stackedWidget->addWidget(page1Widget);
ui.stackedWidget->addWidget(page2Widget);
// etc..

Page1Widget中的按钮点击信号插槽示例:

代码语言:javascript
复制
connect(ui.btnViewData, SIGNAL(clicked()), this, SLOT(viewData()));

::viewData() 
{   
   // navigate to another page here. 
   // note: ui.stackedWidget->setCurrentIndex(3); is not accessible here!
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-25 21:51:21

我相信将connect()和viewData()函数放在QMainWindow对象中可以解决您的问题,因为主窗口可以访问子小部件和QStackedWidget项发出的信号。

您可能需要为每个页面编写一个Ui getter,然后执行以下操作

代码语言:javascript
复制
connect(page1Widget->getUi().btnViewData, SIGNAL(clicked()), this, SLOT(viewData)));

希望能有所帮助,干杯

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15051161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档