目录
1. 布局(Layout)
2. 弹簧(Spacers)
3. 按钮(Bottons)
3.1 Push Botton
3.2 QToolButton
3.3 Radio Button(单选)
3.3.1 设置Radio Button控件
3.3.2 设置默认勾选
3.3.3 设置勾选时进行的操作
3.4 Check Box(复选)
4. Item Widgets
4.1 QListWidget
4.1.1 代码实现
4.3.2 ui 实现
4.2 QTreeWidget
4.2.1 代码实现
4.2.2 ui 实现
4.3 QTableWidget
4.3.1 ui实现
编辑编辑编辑编辑
5. Containers
5.1 Group Box
5.2 Scroll Area
5.3 Tool Box
5.4 Tab Widget
5.5 Stacked Widget
5.6 Dock Widget
5.6.1 代码实现
5.6.2 ui 实现
6. Input Widgets
6.1 Combo Box
6.1.1 代码实现
6.1.2 ui 实现
6.2 Font Combo Box
编辑
6.3 Line Edit
编辑
6.3 Text Edit
6.4 Plain Text Edit
6.5 Spin Box
6.6 Double Spin Box
6.7 Time Edit
6.8 Date Edit
6.9 Date/Time Edit
6.10 Dial
6.11 Horizontal Scroll Bar
6.12 Vertical Scroll Bar
6.13 Horizontal Slider
6.14 Vertical Slider
6.15 Key Sequence Edit
7. Display Widgets
7.1 Label
编辑 编辑
7.1.2 添加动图
非常常用
1.可以直接拖动创建一个指定布局窗口
2.也可先把控件放在同一个Widget窗口中,再选择布局
可以控制控件的位置
选中弹簧在属性栏中可以控制弹簧大小(Fixed为固定弹簧)
常用的有
Push Botton
点击响应
加载图标
加载图标,在属性栏中icon模块选择资源
在inconSize中修改图标大小
工具按钮,常用于显示图片,可以通过调整按钮的类型来调整文字与图片的关系
ToolButtonIconOnly 只显示图片
ToolButtonTextOnly 只显示文本
ToolButtonTextBesideIcon 文本在图片旁
如图第二个按钮为ToolButtonIconOnly类型
autoRaise控制背景是否透明
单独放是可以选中
放在同一个框框中可以做到只能选一个
初始是都没选中
可通过代码来实现默认选项使用 Radio Button->setChecked(true)
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //单选按钮 默认选中 男 ui->rbtn_man->setChecked(true); }
运行结果
使用connect来链接点击后的操作
//点击女单选按钮 打印输出 connect(ui->rbtn_woman,&QRadioButton::clicked,[=](){ qDebug()<<"选中“女”"; });
可以同时多选
Check Box作为信号有专门的发信号函数,stateChanged有参数state
槽函数必须要有int 这个参数
//复选按钮 点击环境好后 监听 connect(ui->checkBox,&QCheckBox::stateChanged,[=](int state){ qDebug()<
2为全选中 0为未选中
可在属性栏中勾选tristate选项可以触发半选 输出1
QListWidget
QTreeWidget
QTableWidget
QListWidget 是qt中的列表框控件,它用于显示多个列表项
列表项对应的类是QListWidgetItem.
使用QListWidgetItem 创建列表项
ui->listWidget->addItem() 将列表项加载到控件中
item->setTexAlignment(Qt:: ) 设置对齐方式
ui->listWidget->addItems(QStringList)可以一次性放入多个列表项,但不能设置对齐方式
//listWidget QListWidgetItem* item = new QListWidgetItem("锄禾日当午"); ui->listWidget->addItem(item); //居中 item->setTextAlignment(Qt::AlignHCenter); //QStringList QList QStringList list; list << "锄禾日当午" <<"汗滴禾下土" << "谁知盘中餐" << "粒粒皆辛苦"; //addItems参数为QStringList 可以放多行 但不能居中 ui->listWidget->addItems(list);
运行结果
可以轻松实现各种功能
QTreeWidget 是 Qt 框架提供的一种树形控件,它能以树形结构展示数据(或者文件)之间的包含关系。
头:ui->treeWidget->setHeaderLables (QStringList);
根:ui->treeWidget->addTopLevelItem (QTreeWidgetItem*);
枝:QTreeWidgetItem->addChild (QTreeWidgetItem*);
//treeWidget树控件使用 //设置头 ui->treeWidget->setHeaderLabels(QStringList() << "英雄" << "分路"); QTreeWidgetItem* proItem1 = new QTreeWidgetItem(QStringList() << "中路"); QTreeWidgetItem* proItem2 = new QTreeWidgetItem(QStringList() << "对抗路"); QTreeWidgetItem* proItem3 = new QTreeWidgetItem(QStringList() << "发育路"); //将根放到树中 ui->treeWidget->addTopLevelItem(proItem1); ui->treeWidget->addTopLevelItem(proItem2); ui->treeWidget->addTopLevelItem(proItem3); QStringList hero1; QStringList hero2; QStringList hero3; hero1 << "马超" << "以吃中路兵线文明,接管中路并线则征服峡谷"; hero2 << "马超" << "对抗路一哥,自加强两星期后惨遭大砍"; hero3 << "元神" << "著名演员桑杰伦说到,除非对抗路削弱,否则元神就是打发育路"; QTreeWidgetItem* l1 = new QTreeWidgetItem(hero1); QTreeWidgetItem* l2 = new QTreeWidgetItem(hero2); QTreeWidgetItem* l3 = new QTreeWidgetItem(hero3); //在根里添加枝杈 proItem1->addChild(l1); proItem2->addChild(l2); proItem3->addChild(l3);
Group Box 分组容器
Scroll Area 可以上下滑动的窗口
Tool Box 分组容器
Tab Widget 多个标签的窗口
Stacked Widget 栈容器窗口,可以链接按钮
一个分组容器,可以将一些控件组在一个区域,便于功能分区
对区域内增加一个上下滑动的滑块
分组区域
在对象栏中右键可以添加页
选中ToolBox在属性栏中可以设置各种属性
可以在每个栏下面拖入控件
可以作为浏览标签
选中tabWidget对象,在属性栏中可以设置各种属性
同理,可以在标签页面添加各种控件
右键对象,可以添加标签
栈容器,可以通过按钮来设置第几页的内容
将两个容器分别放入栈的两个位置中,通过右上角进行翻页
放入之后再对象栏中可以看到栈里面有两个对象
设置两个按钮来控制,否则默认为打开第一页,且不会再运行窗口中进行翻页
代码进行链接
//点击按钮 切换 stacked容器 connect(ui->bt_scrollArea,&QPushButton::clicked,[=](){ ui->stackedWidget->setCurrentIndex(0); }); connect(ui->bt_ToolBox,&QPushButton::clicked,[=](){ ui->stackedWidget->setCurrentIndex(1); });
运行结果
同理在对象栏中右键选择添加栈容量
铆接部件(浮动窗口)
//铆接部件 (浮动窗口) QDockWidget* dock = new QDockWidget("aaa",this); addDockWidget(Qt::TopDockWidgetArea,dock); dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
运行结果
1.正常添加铆接部件(默认在上方)
2.拖动时可以作为浮动窗口
3.在加入核心部件之后,可以 附着在上下左右边框
Combo Box 下拉框
//下拉框的实现 ui->comboBox->addItem("奔驰"); ui->comboBox->addItem("宝马"); ui->comboBox->addItem("拖拉机"); //点击按钮 选中拖拉机下拉框内容 connect(ui->bt_select,&QPushButton::clicked,[=](){ ui->comboBox->setCurrentText("拖拉机"); });
运行时点击“拖拉机”按钮“,则下拉框内容切换为”拖拉机“
直接双击添加
字体下拉框
默认有系统自带的多种字体
单行编辑框
在属性框中可以在echo Mode中设置密码模式
核心文本框
可以修改字体格式(运行时不能)
纯文本框,不能调格式
计数器
双精度计数器
时间控件
日期控件
时间日期控件
水平滑块
垂直滑块
水平滚动条
垂直滚动条
设置快捷键
标签页面,可以添加文字,也可以添加图片或动图
7.1.1 添加图片
添加图片:在属性栏中找到pixmap,在资源文件中添加图片
可以选中scaledContents,使图片填充标签框
添加动图需要通过代码实现
//利用QLabel 显示动态图片 格式要求 gif QMovie* movie = new QMovie(":/images/bandicam 2024-04-29 18-27-59-055 00_00_00-00_00_30.gif"); ui->label->setMovie(movie); movie->start();
7.1.3 添加Label的边框
在属性栏中QFrame的frameShape选择合适的边框