QT学习笔记之控件

我们乐此不疲地追赶日月星辰,却从不追赶时间,所以我们永远年轻。


按钮类

1.QPushButton常用按钮;

2.QTool 工具按钮,用于显示图片和文字(将图片添加资源文件后,在icon中设置,注意选已经添加到资源中的文件,否则不显示土坯那),通过toolButtonStyle修改风格(是否图片与文字并存等),按钮突起autoRaise(鼠标防止后按钮突起);

3.radioButton 单选按钮,(当出现多组不同类的单选选按钮,需要每个类选择一个选项时,使用GroupBox将不同类的分开)设置默认选项(ui->默认按钮选项名->setChecked(ture));

4.checkbox 多选按钮,状态值 2选中,1半选,0未选中

mainwindow.cpp文件

ui界面

QListWidget控件(列表容器)

QListWidgetItem *Item 一行内容

mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->rb2->setChecked(1);//将女设置为默认选项

    connect(ui->rb1,&QRadioButton::clicked,[=]()
           {
        qDebug()<<"性别男";

    });//连接单选按钮男(点击)与打印调试信息已婚

    ui->rb4->setChecked(1);//将未婚设置为默认选项


    connect(ui->rb3,&QRadioButton::clicked,[=]()
       {
           qDebug()<<"已婚";

    });//连接单选按钮已婚(点击)与打印调试信息已婚

    connect(ui->checkBox_5,&QCheckBox::stateChanged,[=](int state){
        qDebug()<<state;
    });//连接交通便利多选按钮状态改变信号与打印状态,因为槽函数需要接收按钮状态,所以在()定义一个int类型的变量

    QListWidgetItem *item1 = new QListWidgetItem("云想衣裳花想容");//为ListWideget添加选项
    QListWidgetItem *item2 = new QListWidgetItem("春风拂槛露华浓");
    QListWidgetItem *item3 = new QListWidgetItem("若非群玉山头见");
    QListWidgetItem *item4 = new QListWidgetItem("会向瑶台月下逢");

    ui->listWidget->addItem(item1);//添加到listWidget容器中
    ui->listWidget->addItem(item2);
    ui->listWidget->addItem(item3);
    ui->listWidget->addItem(item4);
    //QStringList QList<QString>list容器中放置字符串
    //QStringList list;//list<<"云想衣裳花想容"<<"春风拂槛露华浓";//多行显示
    
    item1->setTextAlignment(Qt::AlignHCenter);//设置水平居中
    item2->setTextAlignment(Qt::AlignHCenter);
    item3->setTextAlignment(Qt::AlignHCenter);
    item4->setTextAlignment(Qt::AlignHCenter);
}

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

ui界面

3.QTreeWidget 树控件

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"应用介绍");//设置水平头,匿名对象QStringList()
    QTreeWidgetItem *item1 = new QTreeWidgetItem(QStringList()<<"对抗");
    QTreeWidgetItem *item2 = new QTreeWidgetItem(QStringList()<<"打野");
    QTreeWidgetItem *item3 = new QTreeWidgetItem(QStringList()<<"法师");

    ui->treeWidget->addTopLevelItem(item1);//加载顶层节点
    ui->treeWidget->addTopLevelItem(item2);
    ui->treeWidget->addTopLevelItem(item3);

    QTreeWidgetItem *item11 = new QTreeWidgetItem(QStringList()<<"马超"<<"丢枪,收枪");
    QTreeWidgetItem *item21 = new QTreeWidgetItem(QStringList()<<"赵云"<<"扎地板");
    QTreeWidgetItem *item31 = new QTreeWidgetItem(QStringList()<<"王昭君"<<"冻住空气");

    item1->addChild(item11);//追加子节点
    item2->addChild(item21);
    item3->addChild(item31);
}

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

ui界面

QTableWidget

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->tableWidget->setColumnCount(3);//设置列数
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");//设置水平表头
    ui->tableWidget->setRowCount(5);//设置行数
    QStringList namelist ;
    QStringList sexlist;
    namelist<<"王一一"<<"李二二"<<"张三三"<<"赵四四"<<"孙六六";
    sexlist<<"女"<<"男"<<"男"<<"男"<<"女";
    for(int i=0;i<5;i++)
    {
        int col=0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(namelist[i]));//namelist[i]访问越界直接挂掉
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexlist.at(i)));//sexlist.at(i)访问越界报错
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));

    }//设置正文
}

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

ui界面

其他控件

在ui编辑中加入了stackedWidget栈控件、在ststackedWidget三个页中分别加入scrollArea按钮、ToolBox、TabWidget。

在ui编辑中加入comboBox下拉框,加入按钮btn。

在ui编辑中加入两个QLable,分别命名为IM、L_movie。

#include "widget.h"
#include "ui_widget.h"
#include <QMovie>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //栈控件的使用
    connect(ui->btn_Scroll,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(0);//将按键btn_Scroll的点击信号与scrollArea按钮所在的stackedWidget页面相连
    });
    connect(ui->btn_tool,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(2);//将按键btn_tool的点击信号与ToolBox按钮所在的stackedWidget页面相连
    });
    connect(ui->btn_Tab,&QPushButton::clicked,[=](){
        ui->stackedWidget->setCurrentIndex(1);//将按键btn_Tab的点击信号与TabWidget按钮所在的stackedWidget页面相连
    });

    //下拉框
    ui->comboBox->addItem("奥陶纪");
    ui->comboBox->addItem("三叠纪");
    ui->comboBox->addItem("白垩纪");

    connect(ui->btn,&QPushButton::clicked,[=](){
        ui->comboBox->setCurrentIndex(2);//也可用"白垩纪"
    });//点击btn按钮,选中“白垩纪”

    //利用QLable显示图片
    ui->IM->setPixmap(QPixmap(":/1.jpg"));//标签QLabel IM显示图片1.jpg
    //利用QLabel播放动图
    QMovie *movie =new QMovie(":/2.gif");
    ui->L_movie->setMovie(movie);//L_movie是标签名
    movie->start();//播放动态2.gif

}

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

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值