首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >销毁QHBoxLayout

销毁QHBoxLayout
EN

Stack Overflow用户
提问于 2011-06-27 20:01:06
回答 3查看 746关注 0票数 3

你好,这是我的代码,我在按钮事件处理程序中调用所有这些语句,如下所示

代码语言:javascript
复制
void analysis::on_pushButton_clicked()
{
 myplot * p = new myplot(gao.structpayloadgraph,gao1.structpayloadgraph, gao.structcol-2, "payload");

    myplot * p1 = new myplot(gao.structsessiongraph,gao.structsessiongraph ,gao.structcol-2, "session");


  QHBoxLayout * layout = new QHBoxLayout;
 ui->horizontalLayout_2->addLayout(layout);
 layout->addWidget(p);
 layout->addWidget(p1);

}

myplot是一个图形绘制类,但问题是,每次我点击按钮时,新的图形会出现,之前的图形会保留下来,就像一个!st click 2在第二次出现时就变成了4然后6......如何销毁按钮事件处理程序中的QHBoxLayout

谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-06-27 20:11:07

尝试只创建一个布局,并在每次单击后尝试执行类似于此布局->removeWidget(...);的操作来删除prew图。

票数 0
EN

Stack Overflow用户

发布于 2011-06-27 20:17:14

on_pushButton_clicked()函数设置全局layout

然后从其中删除所有以前的小部件:

代码语言:javascript
复制
    QLayoutItem *item;
    QLayoutIterator it = layout->iterator();

    while((item = it.takeCurrent()) != 0) {
        layout->remove(item->widget());
        delete item->widget();
    }

然后,您可以添加您的小部件:

代码语言:javascript
复制
    layout->addWidget(p);
    layout->addWidget(p1);

更新:仅适用于Qt3Support模式的

UPD2:

代码语言:javascript
复制
    QLayoutItem *tItem;
    while (tItem = layout->takeAt(0) != 0)
        delete tItem;
票数 0
EN

Stack Overflow用户

发布于 2011-12-05 17:48:16

你应该这样做:

在你的班上:

代码语言:javascript
复制
class analysis{

private:
      ...
      QHBoxLayout* hLayouot;
      ...

public:
      ...
 };


in the constructor you have to create the object:

hLayout = new QHBoxLayout(this);  --> if you can t put 'this' on constructor because your class doesn t hinerit from QWidget, you MUST delete hLayout inside the destructor!

while in your method void analysis::on_pushButton_clicked() you can call hLayout->removeWidget() ..
i have experienced problem too removing from layouts: so i called hLayout->clear() and then re-inserted the objects!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6492530

复制
相关文章

相似问题

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