1.Layouts
布局控件,但是不用这个,直接将其它控件放入Frame或Widget容器中,配合ui界面上面的水平布局,垂直布局,栅格布局即可。
2.Spacers
添加弹簧,使布局更加美观。
3.Buttons
Push Button
Tool Button 可以进行图片显示的按钮(也可以文字和图片一起显示)
Radio Button 单选按钮,一般配合Group Box一起使用
Check Box 多选按钮
4.Item Views(Model-Based)
5.Item Widgets(Item-Based)
5.1 List Widget控件
可以输入一行一行的文本
5.2 Tree Widget控件
树控件,可以设置水平头,设置根目录和子目录等
5.3 Table Widget控件
//写在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容器,存放内容,其内容直接拼接即可
QStringList nameList;
nameList << "刘备" << "关羽" << "张飞" << "花木兰" << "迪丽热巴";
//QList(QString)等同于QStringList,但是可能缺少该类,所以用QStringList吧
QStringList sexList;
sexList << "男" << "男" << "男" << "女" << "女";
QStringList ageList;
ageList << "20" << "21" << "22" << "23" << "24";
//利用for循环,为列填入内容
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(i)方式越界抛出异常,[i]方式越界直接挂了
ui->tableWidget->setItem(i,col++,new QTableWidgetItem(ageList[i]));
}
}
Widget::~Widget()
{
delete ui;
}
6 Containers(容器)
Group Box 分组用的
Scroll Area 滚动条页面
Tool Box 类似于QQ分组那种
Tab Widget 标签页
Stacked Widget 栈控件,用来切换页面的
Frame Widget 用来对控件进行布局(水平布局,竖直布局,栅格布局等)
Dock Widget 浮动窗口
//写在widget.cpp中,,,,,使用栈控件stackedWidget进行页面切换
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//栈容器的使用,栈容器就是stackedWidget
//scrollArea按钮
connect(ui->btn_scrollArea,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(0);
});
//tabWidget按钮
connect(ui->btn_tabWidget,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(1);
});
//toolBox按钮
connect(ui->btn_toolBox,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(2);
});
//设置栈容器的默认值(即默认第一页显示什么)
ui->stackedWidget->setCurrentIndex(0);
}
Widget::~Widget()
{
delete ui;
}
左侧选择框,即可进行页面的切换,右侧页面中有scrollArea(滚动条)toolBox(类似于QQ那种页面)tabWidget(标签页)三种。
7 Input Widgets(输入控件)
Combo Box 下拉框
//写在widget.cpp中
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//找到控件名字,在代码中调用API控制它,干啥都信号和槽,很简便
ui->comboBox->addItems(QStringList() << "花花" << "s" << "q");
connect(ui->pushButton,&QPushButton::clicked,[=](){
//ui->comboBox->setCurrentIndex(1);//所以说,切换页面的索引在右下角属性,而一般的索引就按0开始数
ui->comboBox->setCurrentText("s");
});
}
Widget::~Widget()
{
delete ui;
}
Font Combo Box 字体下拉框
Line Edit 单行输入框,可以用右下角属性的echoMode修改其输入模式,改为Password密码模式
Text Edit 多行文本,记事本可以用这个(支持修改文字的字体,颜色,加粗等)
Plain Text Edit 和上面那个相似,但是是纯文本,不能字体,颜色,加粗等
Spin Box 数字的加减(计数器)
Double Spin Box 带有两位小数的数字加减,双精度
Time Edit 时间
Date Edit 日期
Date/Time Edit 又有时间又有日期
Horizontal Scroll Bar 水平滚动条
Vertical Scroll Bar 竖直滚动条
Horizontal Slider 水平滑动条(可以与Spin Box计数器一起用,控件的自定义封装)
Vertical Slider 竖直滑动条
8 Display Widgets(展示控件)
Label 标签(可以显示文字,也可以显示图片)