上篇QT从入门到实战x篇_19_QTableWidget控件(实现类似EXCEL的数据表格;具体的使用方法;QStringList 和QList的使用;int转QString方法)介绍了QTableWidget控件的使用方法,本篇将介绍其他常用控件的使用方法。
首先创建名为“08_OtherControl”
的widget程序。
1. Containers
用于包含其他控件的控件
1.1 Group Box之前已经介绍过-找半天没找到,网上找了一个
QGroupBox为构建分组框提供了支持。分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。分组框的标题通常在上方显示,其位置可以设置为靠左、居中、靠右、自动调整这几种方式之一。位于分组框之中的窗口部件可以获得应用程序的焦点,位于分组框之内的窗口部件是分组框的子窗口,通常使用addWidget()方法把子窗口部件加入到分组框之中。
#include "mainwindow.h"
#include <QApplication>
#include <QObject>
#include <QGroupBox>
#include <QPushButton>
#include <QCheckBox>
#include <QRadioButton>
#include <QVBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGroupBox *pGroupBox = new QGroupBox(QObject::tr("GroupBox test"));
QPushButton *pBtn = new QPushButton(QObject::tr("button")) ;
QCheckBox* pCheckBox = new QCheckBox(QObject::tr("checkbox test"));
QRadioButton* pRadio = new QRadioButton(QObject::tr("radiobtn test"));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(pBtn);
layout->addWidget(pCheckBox);
layout->addWidget(pRadio);
pGroupBox->setLayout(layout);
pGroupBox->setCheckable(true);
pGroupBox->show();
return a.exec();
1.2 Scroll Area
用于界面中无法完全显示时滚动查看整体控件内容
在widget
中拖入“Scroll Area”
后,往其中拖入多个QpushButton
后,选择对齐,由于无法完整显示,可以拖动滚动条来查看整个界面。
1.3 Tool Box
可以用于构建qq聊天界面
- 可以通过如下操作添加新的栏目
- 给没一个
page
中添加内容
单击对应page
的按钮就会展开,添加控件进去,下图中在“朋友”
页面中添加了QPushButton
的控件
1.4 Tab Widget
形成下面的界面,具有不同的Tab
页面,每个页面中可以添加不同的内容
1.5 Stacked Widget
Stacked Widget栈控件
可以通过右上角的三角箭头实现不同页面的切换,下图为将上面创建的
“Scroll Area”
、
“Tool Box”
和
“Tab Widget”
添加后的图。
运行之后效果如下:
可以看到实际运行时是没有三角箭头实现不同页面的切换,这是因为在设计页面的箭头是用于提示的,实际的切换动作,需要一定的按钮来实现。
//stacked Widget控件的使用
//设置默认页面
ui->stackedWidget->setCurrentIndex(0);
//scrollArea按钮
connect(ui->btn_scrollArea,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(0);
});
//toolBox按钮
connect(ui->btn_toolBox,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(1);
});
//tab widget
connect(ui->btn_tabWidget,&QPushButton::clicked,[=](){
ui->stackedWidget->setCurrentIndex(2);
});
运行结果:通过按钮可以实现不同页面的切换,且默认页面为scrollArea
1.6 Frame
是一个边框,与
widget
类似,一般用来进行一些布局或者框架
1.7 MDI Area
未使用过
1.8 Dock Widget
浮动窗口
2 Input Widgets
2.1 Combo Box
添加下来框选项
//下拉框
ui->comboBox->addItem("benchi");
ui->comboBox->addItem("baoma");
ui->comboBox->addItem("baoshijie");
运行结果:
- 通过按钮选定指定的下拉框内容
方法1:使用setCurrentIndex()
选中下拉框内容
//通过按钮选中奔驰
connect(ui->btn_select,&QPushButton::clicked,[=](){
ui->comboBox->setCurrentIndex(0);
});
方法2:使用setCurrentText()选中下拉框内容
//通过按钮选中奔驰
connect(ui->btn_select,&QPushButton::clicked,[=](){
ui->comboBox->setCurrentText("benchi");
});
运行结果:
2.2 Front Combo Box字体下拉框
2.3 Line Edit单行文本输入框
2.4 Text Edit
多行文本输入框,支持字体的颜色倾斜和加粗
2.5 Plain Text Edit
也是多行文本输入框,纯文本,不支持字体的颜色倾斜和加粗
2.6 Spin Box数据加减
2.7 Double Spin Box
double
数据类型的
Spin Box
2.8 Time Edit
显示时间
2.9 Date Edit日期
2.10 Data/Time Edit
既有时间又有日期
2.11 Dial
功能未使用过
2.12 Horizontal/Vertical Scroll Bar
水平和垂直滚动条
2.13 Horizontal/Vertical Scroll Slider
另一种形式的水平和垂直滚动条
可以配合spin box
与Horizontal/Vertical Scroll Slider
组合,形成自定义组合控件,两种同步变化。
2.14 Key Sequence Edit
应该是一个快捷键操作
3. Display Widget
本部分只对常用的控件
QLabel
的使用方法进行介绍。
3.1 Label
不仅可以用来显示文字,也可以用来显示图片。
- 添加完资源文件后,选择重新构建,对应的资源文件就可以出现在资源目录下;
- 如果按照以下方式去添加了图片或者gif之后,界面运行不显示,可以执行以下步骤:
清除-->执行qmake-->重新构建-->运行
,后即可正常显示资源文件。
添加资源文件后并编译完成后,添加如下代码:
//在QLabel中显示图片
ui->lbl_image->setPixmap(QPixmap(":/Image/bufferfly.png"));
除了显示图片,QLabel
还可以显示gif
动图
//QLabel中显示gif动态图
QMovie* movie= new QMovie(":/Image/mario.gif");
ui->lbl_movie->setMovie(movie);
//播放动图
movie->start();
3.2 Progress Bar
进度条显示,可以使用以下代码设置进度条的最大最小及初始值
//进度条显示设置
ui->progressBar->setMinimum(0);
ui->progressBar->setMaximum(100);
ui->progressBar->setValue(24);
4. 学习视频地址: QT从入门到实战x篇_20_其他常用控件介绍