首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Qt中的指针更改布局内容

使用Qt中的指针更改布局内容
EN

Stack Overflow用户
提问于 2016-05-08 23:15:50
回答 1查看 298关注 0票数 0

是否可以用指针更改布局的内容?

我想做以下几件事。

在标题中:

代码语言:javascript
复制
QWidget* activeView;
QWidget* one;
QWidget* two;
...

在源文件中,我在构造函数中设置了小部件,并将第一个部件推送到布局中:

代码语言:javascript
复制
activeView = one;
ui->activeLayout->addWidget(activeView);

稍后,我想用插槽或方法更改activeView

代码语言:javascript
复制
activeView = two;

我试过了,但没用。我甚至调用了布局的update()方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-08 23:29:43

不幸的是,这是行不通的。

你想要的是QStackedWidget。正式文档是这里

如果您不想使用此小部件并希望手动执行,则必须在代码中自己重构布局。它可以用一种方法包装,不会太难看。

示例:

代码语言:javascript
复制
void clearLayout(QLayout *layout) 
{
    if (layout) {
        while(layout->count() > 0){
            QLayoutItem *item = layout->takeAt(0);
            delete item->widget();
            delete item;
        }
    }
}

void setNewWidgetVisible(QWidget *activeView)
{
   clearLayout(ui->activeLayout);
   ui->activeLayout->addWidget(activeView);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37105811

复制
相关文章

相似问题

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