按钮组:
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:传智教育