QT动态添加删除控件
源文件
成都创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为金城江企业提供专业的网站设计制作、成都网站设计,金城江网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
#include "mainwindow.h" #include "ui_mainwindow.h"
#include
MainWindow::MainWindow(QWidget *parent) :
{
ui->setupUi(this);
layout = new QVBoxLayout;
containWidget = new QWidget;
for (int i = 0; i < 1; ++i)
{
QLabel *label = new QLabel();
QPixmap pixmap;
pixmap.load(":/timg.jpg");
label->setPixmap(pixmap);
layout->addWidget(label);
}
containWidget->setLayout(layout);
ui->scrollArea->setWidgetResizable(true);
ui->scrollArea->setWidget(containWidget);
//this->setCentralWidget(ui->scrollArea);
connect(ui->AddBottun,SIGNAL(clicked(bool)),SLOT(addWidget()));
connect(ui->DelButton,SIGNAL(clicked(bool)),SLOT(delWidget()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::addWidget()
{
for (int i = 0; i < 1; ++i)
{
QLabel *label = new QLabel();
QPixmap pixmap;
pixmap.load(":/timg.jpg");
label->setPixmap(pixmap);
layout->addWidget(label);
}
}
void MainWindow::delWidget()
{
/* //单次删除控件
QLabel *fm = ui->scrollArea->findChild(); //找到指定名称的控件
layout->removeWidget(fm);
fm->deleteLater();
*/
//删除所有Label 子控件
QListlabelList= ui->scrollArea->findChildren ();
for(int i=0;i {QLabel *fm =labelList.at(i);layout->removeWidget(fm);fm->deleteLater();}}头文件
#include#include#include#includenamespace Ui {class MainWindow;}class MainWindow : public QMainWindow{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void addWidget();void delWidget();private:Ui::MainWindow *ui;QVBoxLayout *layout;QWidget *containWidget;};
本文名称:QT动态添加删除控件
标题链接:http://scjbc.cn/article/jpggch.html