• 5774阅读
  • 8回复

移除某一个QLabel 上的所有 QWiget [复制链接]

上一主题 下一主题
离线leon0356
 
只看楼主 正序阅读 楼主  发表于: 2009-10-17
比如  
在一个QLabel  上添加了若干个QLabel   ,有什么函数可以一次性把添加的所有 QLabel  都移除
          int main(int argc, char *argv[])
                {
                    QApplication app(argc, argv);
                     QLabel *label = new QLabel;
    
                     QLabel *b1;
                     b1=new QLabel();
                      b1->setText("image1");
     b1->setFixedSize(QSize(100,100));
    
    QLabel *b2;
    b2=new QLabel();
                      b2->setText("image2");
    b2->setFixedSize(QSize(100,100));
        
                      QLabel *b3;
      b3=new QLabel();
      b3->setText("image1");
      b3->setFixedSize(QSize(100,100));

      QVBoxLayout *vLayout = new QVBoxLayout;
      vLayout->addWidget(b1);
      vLayout->addWidget(b2);
      vLayout->addWidget(b3);

      label->setLayout(vLayout);
      label->clear();     //用clear没效果
      
      label->show();
    
                      return app.exec();
}


我测试了一下label->clear()不行,请问有解决方法吗??
离线rqzrqh

只看该作者 8楼 发表于: 2009-10-18
寒啊。delete是C++释放内存的东西。。
离线leon0356
只看该作者 7楼 发表于: 2009-10-18
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel;
    
     QLabel *b1;
      b1=new QLabel();
      b1->setText("image1");
      b1->setFixedSize(QSize(100,100));
      QPixmap img1("D:\\temp\\01.jpg");
      b1->setPixmap(img1);    
     QLabel *b2;
    b2=new QLabel();
    b2->setText("image2");
    b2->setFixedSize(QSize(100,100));
    QPixmap img2("D:\\temp\\02.jpg");
    b2->setPixmap(img2);
     QLabel *b3;
      b3=new QLabel();
      b3->setText("image1");
      b3->setFixedSize(QSize(100,100));
      QPixmap img3("D:\\temp\\03.jpg");
      b3->setPixmap(img3);


    
      QVBoxLayout *vLayout = new QVBoxLayout;
      vLayout->addWidget(b1);
      vLayout->addWidget(b2);
      vLayout->addWidget(b3);
      label->setLayout(vLayout);

      QVBoxLayout *vLayout2 = new QVBoxLayout;
      vLayout2->addWidget(b1);
      vLayout2->addWidget(b2);
      label->setLayout(vLayout2);
      
      label->show();
    
    return app.exec();
}


我换了种思路想用  vLayout2覆盖掉vLayout ,我的本意是用vLayout2布局覆盖掉vLayout 的布局
但出现了图片覆盖的现象,请问是出了什么问题,布局管理不可以改变吗??
离线leon0356
只看该作者 6楼 发表于: 2009-10-18
不会,我正在查,谢谢提醒。
离线rqzrqh

只看该作者 5楼 发表于: 2009-10-18
QT用的还是C++的编译器,只是对QT所需要的关键部分进行了预处理。
销毁一个类会吗?delete
离线leon0356
只看该作者 4楼 发表于: 2009-10-18
你好,能把方法说细一点吗?我不怎么理解
离线rqzrqh

只看该作者 3楼 发表于: 2009-10-18
delete又不是函数
离线leon0356
只看该作者 2楼 发表于: 2009-10-17
没有delete这个函数啊,请问什么函数可以。
离线rqzrqh

只看该作者 1楼 发表于: 2009-10-17
void QLabel::clear () [slot]
Clears any label contents。清除的是文本或者图标吧。
清除的方法当时是delete了
快速回复
限100 字节
 
上一个 下一个