溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

QT動(dòng)態(tài)添加刪除控件

發(fā)布時(shí)間:2020-07-18 13:38:30 來(lái)源:網(wǎng)絡(luò) 閱讀:9977 作者:alongsxmx 欄目:編程語(yǔ)言

源文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>

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<QLabel*>(); //找到指定名稱(chēng)的控件
    layout->removeWidget(fm);
    fm->deleteLater();
    */
    //刪除所有Label 子控件
    QList<QLabel *> labelList= ui->scrollArea->findChildren<QLabel *>();
    for(int i=0;i<labelList.length();++i)
    {
        QLabel *fm =labelList.at(i);
        layout->removeWidget(fm);
        fm->deleteLater();
    }

}

頭文件

#include <QMainWindow>
#include<qlayout.h>
#include <qlabel>
#include <QBuffer>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void addWidget();
    void delWidget();
private:
    Ui::MainWindow *ui;
     QVBoxLayout *layout;
     QWidget *containWidget;
};


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI