首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTabWidget奇怪的行为

QTabWidget奇怪的行为
EN

Stack Overflow用户
提问于 2018-11-30 08:20:02
回答 1查看 81关注 0票数 2

我有两个选项卡,其中放置了带单元格的QTableWidget小部件。请参见图像。

代码语言:javascript
复制
QTabWidget *tab = new QTabWidget(this);
for (int i = 0; i < 2; ++i) {
    QTableWidget *t = new QTableWidget(1, 1);

    QPushButton *btn = new QPushButton("Click on me!");

    t->setCellWidget(0, 0, btn);
    connect(btn, &QPushButton::clicked, [=]() {
        btn->hide();
    });
    tab->addTab(t, QString::number(i + 1));
}
setCentralWidget(tab);
EN

回答 1

Stack Overflow用户

发布于 2018-11-30 09:18:25

您指定的行为是可预测的,您必须首先知道,如果小部件变得可见,您的孩子也将可见。

让我们分析一下QTabWidget的例子,这个小部件本质上是一个QTabBar + QStackedWidget,QStackedWidget管理小部件的可见性,后者在内部有一个QStackedLayout,当它确定某个小部件需要显示时,它会隐藏当前的小部件,并显示新的当前小部件。因此,每次选择tabbar时,显示的小部件将调用该小部件的显示方法(在本例中为QTableWidget),并且即使您的孩子处于隐藏状态,它也会使他们可见。

因此,如果您希望,如果您需要按照您设想的方式工作,那么可以将可见性的状态保存在属性中,并保存在showEvent方法中以在必要时应用更改。

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

https://stackoverflow.com/questions/53549513

复制
相关文章

相似问题

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