QT的Item Widgets控件介绍

一、List Widget控件

注:在UI中添加List Widget控件后先编译再写代码,否则会提示缺少头文件

	QListWidgetItem* item1 = new QListWidgetItem("锄禾日当午");
    item1->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    ui->listWidget->addItem(item1);

    QStringList list;
    list << "青女素娥俱耐冷" << "月中霜里斗婵娟";
    ui->listWidget->addItems(list);

在这里插入图片描述
对齐方式如下,两块可以以|的方式连接
Qt::AlignLeft
Qt::AlignRight
Qt::AlignHCenter
Qt::AlignJustify

Qt::AlignTop
Qt::AlignBottom
Qt::AlignVCenter
Qt::AlignBaseline

二、Tree Widget控件

注:在UI中添加Tree Widget控件后先编译再写代码,否则会提示缺少头文件

	ui->setupUi(this);

    QStringList list;
    list << "小说" << "简介";
    ui->treeWidget->setHeaderLabels(list);

    QTreeWidgetItem* treeWidgetItem1 =new QTreeWidgetItem(QStringList() << "都市");
    ui->treeWidget->addTopLevelItem(treeWidgetItem1);

    QTreeWidgetItem* treeWidgetItem2 =new QTreeWidgetItem(QStringList() << "玄幻");
    ui->treeWidget->addTopLevelItem(treeWidgetItem2);

    QTreeWidgetItem* treeWidgetItem3 =new QTreeWidgetItem(QStringList() << "仙侠");
    ui->treeWidget->addTopLevelItem(treeWidgetItem3);

    QTreeWidgetItem* treeWidgetItem1_1 =new QTreeWidgetItem(QStringList() << "都市小说1" << "都市小说1简介");
    treeWidgetItem1->addChild(treeWidgetItem1_1);
    QTreeWidgetItem* treeWidgetItem1_2 =new QTreeWidgetItem(QStringList() << "都市小说2" << "都市小说2简介");
    treeWidgetItem1->addChild(treeWidgetItem1_2);

    QTreeWidgetItem* treeWidgetItem2_1 =new QTreeWidgetItem(QStringList() << "玄幻小说1" << "玄幻小说1简介");
    treeWidgetItem2->addChild(treeWidgetItem2_1);
    QTreeWidgetItem* treeWidgetItem2_2 =new QTreeWidgetItem(QStringList() << "玄幻小说2" << "玄幻小说2简介");
    treeWidgetItem2->addChild(treeWidgetItem2_2);

    QTreeWidgetItem* treeWidgetItem3_1 =new QTreeWidgetItem(QStringList() << "仙侠小说1" << "仙侠小说1简介");
    treeWidgetItem3->addChild(treeWidgetItem3_1);
    QTreeWidgetItem* treeWidgetItem3_2 =new QTreeWidgetItem(QStringList() << "仙侠小说2" << "仙侠小说2简介");
    treeWidgetItem3->addChild(treeWidgetItem3_2);

在这里插入图片描述

//QStringList的两种写法

//第一种
	QTreeWidgetItem* treeWidgetItem1_1 =new QTreeWidgetItem(QStringList() << "都市小说1" << "都市小说1简介");
    treeWidgetItem1->addChild(treeWidgetItem1_1);

//第二种
	QStringList list1_1;
	list1_1 << "都市小说1" << "都市小说1简介";
	QTreeWidgetItem* treeWidgetItem1_1 =new QTreeWidgetItem(list1_1);
	treeWidgetItem1->addChild(treeWidgetItem1_1);

三、Table Widget控件

注:在UI中添加Table Widget控件后先编译再写代码,否则会提示缺少头文件

    ui->setupUi(this);

    ui->tableWidget->setColumnCount(3);
    ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");
    ui->tableWidget->setRowCount(5);

    QStringList nameList;
    nameList << "张三" << "李四" << "王五" << "赵六" << "孙七";
    QStringList sexList;
    sexList << "男" << "女" << "男" << "女" << "男";
    QStringList ageList;
    ageList << "22" << "30" << "12" << "55" << "90";
    for (int i=0;i<5;i++)
    {
        ui->tableWidget->setItem(i,0,new QTableWidgetItem(nameList[i]));
        ui->tableWidget->setItem(i,1,new QTableWidgetItem(sexList[i]));
        ui->tableWidget->setItem(i,2,new QTableWidgetItem(ageList[i]));
    }

    connect(ui->pushButton,&QPushButton::clicked,this,[=](){
        bool exist = ui->tableWidget->findItems("赵云",Qt::MatchExactly).isEmpty();
        if (exist != false)         //当不存在“赵云”时
        {
            int row = 5;
            ui->tableWidget->insertRow(row);
            ui->tableWidget->setItem(row,0,new QTableWidgetItem(QString("赵云")));
            ui->tableWidget->setItem(row,1,new QTableWidgetItem(QString("男")));
            ui->tableWidget->setItem(row,2,new QTableWidgetItem(QString("1000")));
        }
        else
        {
            QMessageBox::critical(this,"错误","已经存在赵云,无法添加!");
        }
    });

    connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
        bool exist = ui->tableWidget->findItems("赵云",Qt::MatchExactly).isEmpty();
        if (exist == false)         //当存在“赵云”时
        {
            int row = ui->tableWidget->findItems("赵云",Qt::MatchExactly).first()->row();
            ui->tableWidget->removeRow(row);
        }
        else
        {
            QMessageBox::critical(this,"错误","不存在赵云,无法删除!");
        }
    });

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值