星星博客 »  > 

Qt基础 一些其他的控件以控件的整合

根据B站《最新QT从入门到实战完整版|传智教育》学习的,BV号:BV1g4411H78N

QListWidget、QTreeWidget、TableWidget、QLable等

其他代码均为自动生成的

代码中有些用的英文字母或者瞎写的英文字母看看就好了,主要是为了举例,因为我电脑这边中文有时候回车报错不知道哪的问题,之前查了查弄了一下直接就乱码了,也不敢瞎弄了0.0

mainwindow.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QListWidgetItem>
#include <QMovie>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //设置单选按钮,默认选男
    ui->rBtnMan->setChecked(true);

    //选中女后,打印信息
    connect(ui->rBtnWoman,&QRadioButton::clicked,[=](){
        qDebug() << "choose woman";
    });

    //多选按钮  2是选中,0是未选中,1是半选中
    connect(ui->cBox,&QCheckBox::stateChanged,[=](int state){
        qDebug() << state;
    });

        //利用QListWidgettem写诗
    //一句一句的放
//    QListWidgetItem * item = new QListWidgetItem("锄禾日当午a");
//    QListWidgetItem * item2 = new QListWidgetItem("汗滴禾下土a");
//    QListWidgetItem * item3 = new QListWidgetItem("谁知盘中餐a");
//    QListWidgetItem * item4 = new QListWidgetItem("粒粒皆辛苦a");
//    //将一行诗放入到listWidget控件中
//    ui->listWidget->addItem(item);
//    ui->listWidget->addItem(item2);
//    ui->listWidget->addItem(item3);
//    ui->listWidget->addItem(item4);
//    item->setTextAlignment(Qt::AlignHCenter);       //居中
//    item2->setTextAlignment(Qt::AlignHCenter);
//    item3->setTextAlignment(Qt::AlignHCenter);
//    item4->setTextAlignment(Qt::AlignHCenter);

    //直接放整个诗
    //QStringList   QList<QString>
    QStringList list;
    list << "锄禾日当午,a" << "汗滴禾下土。a" << "谁知盘水餐,a" << "粒粒皆辛苦。a";
    ui->listWidget->addItems(list);

        //treeWidget树控件的使用
    //设置水平头
    ui->treeWidget->setHeaderLabels(QStringList() << "英雄" <<"英雄介绍");
    //设置顶层节点
    QTreeWidgetItem * liItem = new QTreeWidgetItem(QStringList() << "力量");
    QTreeWidgetItem * minItem = new QTreeWidgetItem(QStringList() << "敏捷");
    QTreeWidgetItem * zhiItem = new QTreeWidgetItem(QStringList() << "智力");
    //加载顶层节点
    ui->treeWidget->addTopLevelItem(liItem);
    ui->treeWidget->addTopLevelItem(minItem);
    ui->treeWidget->addTopLevelItem(zhiItem);

    //追加子节点
    QStringList heroL1;
    heroL1 << "akjgk" << "aulgyjcghfuv,jhvjhvhj";
    QTreeWidgetItem * l1 = new QTreeWidgetItem(heroL1);
    liItem->addChild(l1);

        //TableWidget控件
    //设置列数
    ui->tableWidget->setColumnCount(3);

    //设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");

    //设置行数
    ui->tableWidget->setRowCount(5);

    //设置正文
    //ui->tableWidget->setItem(0,0,new QTableWidgetItem("盖伦"));

    //使用for循环,将表格填满
    QStringList nameList;
    nameList << "盖伦" << "男刀" << "瑞文" << "亚索" << "剑圣";

    QList<QString> sexList; //和上面的QStringList一样,作用相同!
    sexList << "m"<< "m"<< "w"<< "m"<< "m";

    for(int i=0; i<5; i++)
    {
        int col = 0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));  //at越界后会抛出错误
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));
    }


        //栈控件的使用
    //设置默认定位到gBox1按钮
    ui->stackedWidget->setCurrentIndex(2);
    //gBox1按钮
    connect(ui->pushButton_5,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(2);
    });

    //gBox2按钮
    connect(ui->pushButton_6,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(0);
    });

    //gsBox3按钮
    connect(ui->pushButton_7,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(1);
    });

        //下拉框
    ui->comboBox->addItem("benchi");
    ui->comboBox->addItem("baoma");
    ui->comboBox->addItem("tuolaji");

    //点击按钮,选中benchi
    connect(ui->btn8,&QPushButton::clicked,[=](){
        //两种方式均可
        //ui->comboBox->setCurrentIndex(2);
        ui->comboBox->setCurrentText("tuolaji");


    });

        //利用QLable显示图片
    ui->lbl_Image->setPixmap(QPixmap(":/window.png"));

    //利用QLable显示动态图片    gif图片
    QMovie * movie = new QMovie(":/b52c0e9a3aefcaa39539c05244ddb8ca.gif");
    ui->lbl_movie->setMovie(movie);
    //播放动图
    movie->start();


}

Widget::~Widget()
{
    delete ui;
}

 

相关文章