Qt——控件

按钮组:
QPushButton:常用按钮;

QToolButton:工具按钮;
用于显示图片,修改风格,toolButtonStyle,凸起风格autoRaise;

radioButton:单选按钮;
设置默认选项:ui->rBtnMan->setChecked(true);

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

QListWidget:列表容器;
一行内容:QListWidgetitem *item;
ui->listWidget->additem( item);
设置居中方式:item->setTextAlignment(Qt::AlignHCenter);
可以利用additems,一次性添加整个内容
在这里插入图片描述
在这里插入图片描述

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

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

    //设置单选按钮  男默认

    ui->rBtnMan->setChecked(true);//默认性别为男
    ui->married->setChecked(true);//默认未婚

    //使用信号和槽选中时打印
    connect(ui->rBtnWomen,&QToolButton::clicked,[=](){
        qDebug()<<"女性";
    });

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


    //listWidget
    //第一种方式
    //利用listwidget输入
//    QListWidgetItem *item =new QListWidgetItem("锄禾日当午");
//    //放入listwidget控件中
//    ui->listWidget->addItem(item);
//     item->setTextAlignment(Qt::AlignHCenter);  //设置水平居中
    //第二种方式容器
    QStringList list;
    list<<"asdasf"<<"qweqqw";
    ui->listWidget->addItems(list);

}

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


QTreeWidget树控件:

#include "widget.h"
#include "ui_widget.h"
#include <QTreeWidgetItem>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //treeWidget使用
    //设置水平头
    ui->treeWidget->setHeaderLabels((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);
    //追加子结点
    QStringList hero1;
    hero1<<"盖伦"<<"疯狂输出";
    QTreeWidgetItem *h1 = new QTreeWidgetItem(hero1);
    item1->addChild(h1);

    QStringList hero2;
    hero2<<"石头人"<<"疯狂防御";
    QTreeWidgetItem *h2 = new QTreeWidgetItem(hero2);
   item1->addChild(h2);

}

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

在这里插入图片描述
QTableWidget:

#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);

    //设置正文
    //ui->tableWidget->setItem(0,0,QTableWidgetItem("A"));   //参数:行数,列数,内容
    QStringList namelist;
    namelist<<"A"<<"B"<<"C"<<"D"<<"E";
    QList<QString>sexlist;
    sexlist<<"男"<<"女"<<"男"<<"男"<<"女";

    for(int i=0;i<5;i++){
        int j = 0;
            ui->tableWidget->setItem(i,j++,new QTableWidgetItem(namelist[i]));
            ui->tableWidget->setItem(i,j++,new QTableWidgetItem(sexlist.at(i)));
            //int 转string
            ui->tableWidget->setItem(i,j++,new QTableWidgetItem(QString::number(i+18)));

    }

}

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


在这里插入图片描述
其他主要控件:
stackWidget 栈控件;
ui->stackWidget->setCurrentIndex(1);
comboBox 下拉框
ui->comboBox->addItem(“A”);
Qlabel 显示图片或文字
ui->labl_image->setPixmap(“icon图片地址”);
如果需要让其显示动图需要在加上播放动图命令:movie->strat();

自定义控件封装:
1.首先创建新文件
QT中的设计师界面类;
2.ui中设计QSpinBox和QSlider两个控件
3.Widget中使用自定义控件,拖拽一个widget控件,在该控件中点击提升为,点击添加,点击提升;
4.实现功能,改变数字,滑动条和数字一起移动,信号槽监听;
5.提供各getNum和SetNum对外接口;
自定义控件smallwidget.h

#ifndef SMALLWIDGET_H
#define SMALLWIDGET_H

#include <QWidget>

namespace Ui {
class smallWidget;
}

class smallWidget : public QWidget
{
    Q_OBJECT

public:
    explicit smallWidget(QWidget *parent = nullptr);
    ~smallWidget();

    //获取数据
    int getnum();
    //设置数据
    void setnum(int val);

private:
    Ui::smallWidget *ui;
};

#endif // SMALLWIDGET_H

自定义控件smallwidget.cpp

#include "smallwidget.h"
#include "ui_smallwidget.h"
#include <QSpinBox>
smallWidget::smallWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::smallWidget)
{
    ui->setupUi(this);
    //QSpinBox改变  QSlider跟着移动
    void (QSpinBox::*spinSignal)(int) = &QSpinBox::valueChanged;    //因为使用的是重载函数所以取函数指针
    connect(ui->spinBox,spinSignal,ui->horizontalSlider,&QSlider::setValue);

    //QSlider移动  QSpinBox跟着改变
    connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);



}

//获取数据
int smallWidget::getnum(){
    return ui->spinBox->value();
}
//设置数据
void smallWidget::setnum(int val){
    ui->spinBox->setValue(val);
}

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

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>
#include <QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //获得数据按钮
    connect(ui->btn_get,&QPushButton::clicked,[=](){
       qDebug()<<ui->widget->getnum();
    });

    //设置数据按钮
    connect(ui->btn_set,&QPushButton::clicked,[=](){
        ui->widget->setnum(50);
    });
}

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


learned from:传智教育

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值