首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于QStackedWidget的帮助

关于QStackedWidget的帮助
EN

Stack Overflow用户
提问于 2010-04-12 12:30:42
回答 3查看 2.4K关注 0票数 3

我在我的mainWindow上使用QStackedWidget。stackedWidget上的firstPageWidget包含3个按钮。现在,如果我要在firstPage上按下第一个按钮,我希望stackedWidget显示第二页小部件。以下是详细信息

我试着在我的主窗口中这样连接

代码语言:javascript
复制
connect(firstPageWidget->button1,SIGNAL(clicked()),stackWidget,SLOT(setCurrentIndex(int)));

现在我想知道如何将索引号的值传递给stackWidget来设置currentIndex?

如果我的问题不是很清楚,请告诉我,我会解释更多。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-12 13:31:45

您可能需要使用QSignalMapper类:

代码语言:javascript
复制
QSignalMapper mapper = new QSignalMapper(); // don't forget to set the proper parent
mapper->setMapping(firstPageWidget->button1, 2); // 2 can be replaced with any int value
connect(firstPageWidget->button1, SIGNAL(clicked()), mapper, SLOT(map()));
connect(mapper, SIGNAL(mapped(int)), stackWidget, SLOT(setCurrentIndex(int)));
票数 5
EN

Stack Overflow用户

发布于 2010-04-12 20:22:15

你可以使用一个包含可选择图标的QListWidget来代替按钮。QListWidget有一个名为QListWidget::currentItemChanged ( QListWidgetItem * current, QListWidgetItem * previous )的方法。我在一段时间前写的一个程序中使用了这种方法。在那里,我编写了一个连接到信号currentItemChanged的函数on_change_widget( QListWidgetItem *current, QListWidgetItem *previous )

代码语言:javascript
复制
connect( my_list_widget,
         SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
         this,
         SLOT(on_change_widget(QListWidgetItem *, QListWidgetItem *))
       );

这应该能起到作用。

你应该看看Config Dialog Example,在那里他们使用相同的方法交换小部件。

当然,你也可以使用普通的按钮,与前面提到的QSignalMapper chalup相关。

票数 0
EN

Stack Overflow用户

发布于 2010-04-13 18:32:12

您还可以使用QButtonGroup并为每个按钮设置适当的id,然后将QButtonGroup信号QButtonGroup::buttonClicked(int)与堆叠的小部件插槽QStackedWidget::setCurrentIndex(int)连接

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

https://stackoverflow.com/questions/2619885

复制
相关文章

相似问题

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