输入窗口部件(Input Widgets)
Qt Designer 窗口部件提供的面板中,提供了 16 种输入部件
(1)Comb Box:组合框
作用简介
-
继承自 QWidget 类
-
通常用于显示选项列表,占用最少的屏幕空间
-
被 QFontComboBox 类继承
用法示例
-
新建例程中不要勾选“Generate form”,默认继承 QMainWindow 类即可
-
mainwindow.h
-
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include
5 /* 引入 QComboBox */
6 #include
7
8 class MainWindow : public QMainWindow
9{
10 Q_OBJECT
11
12 public:
13 MainWindow(QWidget parent = nullptr);
14 ~MainWindow();
15
16 private:
17 / 声明一个 QComboBox 对象 */
18 QComboBox comboBox;
19
20 private slots:
21 / 声明 QComboBox 对象的槽函数 */
22 void comboBoxIndexChanged(int);
23
24 };
25 #endif // MAINWINDOW_H -
引入必要的库
- 引入 QComboBox 类的头文件:#include
-
MainWindow 类定义
-
MainWindow 类继承自 QMainWindow
-
使用 Q_OBJECT 宏以启用 Qt 的信号与槽机制
-
-
构造函数与析构函数
- 在 public 部分,声明 MainWindow 类的构造函数和析构函数
-
成员变量
- 在 private 部分,声明一个 QComboBox 类型的指针变量 comboBox,用于创建组合框控件
-
槽函数声明
- 在 private slots 部分,声明一个槽函数 comboBoxIndexChanged(int),用于响应组合框的索引改变事件
-
-
mainwindow.cpp
-
1 #include “mainwindow.h”
2 /* 引入 QDebug */
3 #include
4
5 MainWindow::MainWindow(QWidget parent)
6 : QMainWindow(parent)
7{
8 / 设置主窗体的显示位置与大小 /
9 this->setGeometry(0, 0, 800, 480);
10
11 / 实例化对象 /
12 comboBox = new QComboBox(this);
13
14 / 设置 comboBox 的显示位置与大小 /
15 comboBox->setGeometry(300, 200, 150, 30);
16
17 / 添加项,我们添加三个省份,作为 comboBox 的三个选项 /
18 comboBox->addItem(“广东(默认)”);
19 comboBox->addItem(“湖南”);
20 comboBox->addItem(“四川”);
21
22 / 信号槽连接 /
23 connect(comboBox, SIGNAL(currentIndexChanged(int)), this,
24 SLOT(comboBoxIndexChanged(int)));
25 }
26
27 MainWindow::~MainWindow()
28 {
29 }
30
31 void MainWindow::comboBoxIndexChanged(int index)
32 {
33 / 打印出选择的省份 */
34 qDebug()<<“您选择的省份是”<< comboBox->itemText(index)<<endl;
35 } -
MainWindow 构造函数
-
设置主窗体的显示位置与大小:this->setGeometry(0, 0, 800, 480),表示窗口的初始位置和尺寸
-
实例化 QComboBox 对象:comboBox = new QComboBox(this);,将其添加到主窗口中
-
设置 comboBox 的显示位置与大小:comboBox->setGeometry(300, 200, 150, 30)
-
-
添加选项项 (Items)
- 使用 comboBox->addItem() 方法为组合框添加三个省份选项:“广东(默认)”、“湖南”、“四川”
-
信号与槽的连接
- 使用 connect() 函数将 QComboBox 的 currentIndexChanged(int) 信号与槽函数 comboBoxIndexChanged(int) 连接起来,当用户选择不同的项时,触发槽函数
-
槽函数 comboBoxIndexChanged(int)
- 在 comboBoxIndexChanged(int index) 函数中,使用 qDebug() 输出用户选择的省份名称,打印格式为:“您选择的省份是 [省份名称]”
-
-
main.cpp 文件
- 由新建项目时自动生成,无需修改
运行效果
(2)Font Comb Box:字体组合框
作用简介
-
继承自 QComboBox
-
允许用户选择字体系列
-
组合框中包含按字母顺序排列的字体家族名称列表
-
常用于工具栏中,与 ComboBox 一起用于控制字体大小,并与 ToolButtons 一起用于设置粗体和斜体
(3)Line Edit:单行编辑框
作用简介
-
继承自 QWidget
-
是一个单行文本编辑器,允许用户输入和编辑一行纯文本
-
支持功能包括撤消/重做、剪切/粘贴和拖放
-
可以通过更改 echoMode() 用作密码输入等“只读”字段
用法示例
-
新建例程中不要勾选“Generate form”,默认继承 QMainWindow 类即可
-
mainwindow.h
- 1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include
5 #include
6 #include
7 #include
8
9 class MainWindow : public QMainWindow
10 {
11 Q_OBJECT
12
13 public:
14 MainWindow(QWidget parent = nullptr);
15 ~MainWindow();
16 private:
17 / 声明一个 QLineEdit 对象 */
18 QLineEdit lineEdit;
19
20 / 声明一个 QPushButton 对象 */
21 QPushButton pushButton;
22
23 / 声明一个 QLabel 对象 */
24 QLabel label;
25
26 private slots:
27 / 声明一个槽函数,响应 pushButton 的 clicked 事件 */
28 void pushButtonClicked();
29 };
30 #endif // MAINWINDOW_H
- 1 #ifndef MAINWINDOW_H
-
mainwindow.cpp
-
1 #include “mainwindow.h”
2
3 MainWindow::MainWindow(QWidget parent)
4 : QMainWindow(parent)
5{
6 this->setGeometry(0, 0, 800, 480);
7
8 lineEdit = new QLineEdit(this);
9 lineEdit->setGeometry(280, 200, 200, 20);
10
11 pushButton = new QPushButton(this);
12 pushButton->setGeometry(500, 200, 50, 20);
13 pushButton->setText(“确认”);
14
15 label = new QLabel(this);
16 label->setGeometry(280, 250, 400, 20);
17 label->setText(“您输入的内容是:”);
18
19 / 信号槽连接 /
20 connect(pushButton,SIGNAL(clicked()), this,
21 SLOT(pushButtonClicked()));
22 }
23
24 MainWindow::~MainWindow()
25 {
26 }
27
28 void MainWindow::pushButtonClicked()
29 {
30 / 字符串变量 str /
31 QString str;
32
33 str = “您输入的内容是:”;
34 str += lineEdit->text();
35
36 / 设置 label 里的文本显示内容 /
37 label->setText(str);
38 / 在点击了确认键之后清空 lineEdit 单行输入框 */
39 lineEdit->clear();
40 } -
第 28 至 40 行,当我们在单选输入框里输入完成后,将输入的内容设置为在 label 的文本内容
-
-
main.cpp 文件
- 由新建项目时自动生成,无需修改
运行效果
- 当在 QLineEdit 单行输入框内输入文本内容后,单击 QPushButton
确认按钮后,QLabel 的文本内容将显示您所输入的内容。然后 QLineEdit 将清空,可再次输入
(4)Text Edit:文本编辑框
作用简介
-
继承自 QAbstractScrollArea,并被 QTextBrowser 继承
-
QAbstractScrollArea
-
是一个抽象基类,为需要滚动条的视图类提供基本功能
-
被 QTextEdit 等类继承,用于处理需要滚动的内容
-
-
QTextBrowser
-
继承自 QTextEdit
-
除了 QTextEdit 的所有功能外,还增加了内置的超链接处理和内嵌文档导航功能
-
常用于显示静态的 HTML 内容,并且用户可以通过点击链接进行导航
-
-
-
是一个高级所见即所得的文本查看器/编辑器,支持 HTML 样式的富文本格式化
-
优化以处理大型文档并快速响应用户输入
-
支持段落和字符的格式化,可以显示图像、列表和表格
-
当文本超出可视区域时,视图中会出现滚动条
用法示例
-
新建例程中不要勾选“Generate form”,默认继承 QMainWindow 类即可
-
mainwindow.h
- 1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3 #include
4 #include
5
6 #include
7
8 class MainWindow : public QMainWindow
9{
10 Q_OBJECT
11
12 public:
13 MainWindow(QWidget parent = nullptr);
14 ~MainWindow();
15
16 private:
17 / 声明一个 QTextEdit 对象 */
18 QTextEdit textEdit;
19
20 / 声明两个 QPushButton 对象 */
21 QPushButton *pushButtonSelectAll;
22 QPushButton pushButtonClearAll;
23
24 private slots:
25 / 声明两个槽函数,响应按钮点击响应的事件 */
26 void pushButtonSelectAllClicked();
27 void pushButtonClearAllClicked();
28
29 };
30 #endif // MAINWINDOW_H
- 1 #ifndef MAINWINDOW_H
-
mainwindow.cpp
- 1 #include “mainwindow.h”
2
3 MainWindow::MainWindow(QWidget parent)
4 : QMainWindow(parent)
5{
6 / 设置主窗体显示的位置和大小 /
7 this->setGeometry(0, 0, 800, 480);
8
9 / 实例和对象,设置位置和显示大小 /
10 textEdit = new QTextEdit(this);
11 textEdit->setGeometry(0, 0, 800, 400);
12
13 / 实例和对象,设置位置和显示大小,设置文本 /
14 pushButtonSelectAll = new QPushButton(this);
15 pushButtonSelectAll->setGeometry(200, 420, 50, 20);
16 pushButtonSelectAll->setText(“全选”);
17
18 / 实例和对象,设置位置和显示大小,设置文本 /
19 pushButtonClearAll = new QPushButton(this);
20 pushButtonClearAll->setGeometry(500, 420, 50, 20);
21 pushButtonClearAll->setText(“清除”);
22
23 / 信号槽连接 /
24 connect(pushButtonSelectAll, SIGNAL(clicked()), this,
25 SLOT(pushButtonSelectAllClicked()));
26 connect(pushButtonClearAll, SIGNAL(clicked()), this,
27 SLOT(pushButtonClearAllClicked()));
28
29 }
30
31 MainWindow::~MainWindow()
32 {
33 }
34
35 void MainWindow::pushButtonSelectAllClicked()
36 {
37 / 设置焦点为 textEdit /
38 textEdit->setFocus();
39 / 判断文本编辑框内容是否为空,不为空则全选 /
40 if(!textEdit->toPlainText().isEmpty()){
41 / 全选 /
42 textEdit->selectAll();
43 }
44 }
45
46 void MainWindow::pushButtonClearAllClicked()
47 {
48 / 清空 textEdit 里的文本内容 */
49 textEdit->clear();
50 }
51
- 1 #include “mainwindow.h”
-
main.cpp 文件
- 由新建项目时自动生成,无需修改
-
运行效果
- 在编辑框里输入文字后,点击按钮全选,点击清除则清除编辑框内的全部内容
(5)Plain Text Edit:纯文本编辑框
作用简介
-
支持纯文本的高级查看器/编辑器
-
优化用于处理大型文档,并能够快速响应用户输入
(6)Spin Box:数字旋转框
作用简介
-
继承自 QAbstractSpinBox
-
QAbstractSpinBox
-
是 QSpinBox 和 QDoubleSpinBox 的基类
-
提供了输入框与上下箭头组合的基础控件,用户可以点击箭头或者使用键盘调整值
-
允许手动输入值,并可以对输入进行验证
-
-
-
用于处理整数和离散值(如月份名称)
-
允许用户通过单击上/下按钮或使用键盘上下箭头来调整值,用户也可以手动输入值
(7)Double Spin Box:双精度数字旋转框
作用简介
-
继承自 QAbstractSpinBox
-
QAbstractSpinBox
-
是 QSpinBox 和 QDoubleSpinBox 的基类
-
提供了输入框与上下箭头组合的基础控件,用户可以点击箭头或者使用键盘调整值
-
允许手动输入值,并可以对输入进行验证
-
-
-
专门用于处理浮点值
-
允许用户通过单击上/下按钮或使用键盘上下箭头来调整当前显示的值,用户也可以手动输入值
(8)Time Edit:时间编辑框
作用简介
-
继承自 QDateTimeEdit
-
QDateTimeEdit
-
继承自 QAbstractSpinBox
-
提供日期和时间的输入与编辑功能
-
用户可以通过点击箭头或手动输入来调整日期和时间,并且可以在日期和时间的不同部分之间移动光标
-
-
-
用于编辑时间
-
用户可以通过键盘或箭头键来增加或减少时间值
(9)Date Edit:日期编辑框
作用简介
-
继承自 QDateTimeEdit
-
QDateTimeEdit
-
继承自 QAbstractSpinBox
-
提供日期和时间的输入与编辑功能
-
用户可以通过点击箭头或手动输入来调整日期和时间,并且可以在日期和时间的不同部分之间移动光标
-
-
-
用于编辑日期
-
用户可以通过键盘或箭头键来增加或减少日期值
(10)Date/Time Edit:日期时间编辑框
作用简介
-
提供一个用于编辑日期和时间的小部件
-
允许用户通过键盘或箭头键来编辑日期和时间值
-
支持在框内区域之间移动
(11)Dial:数字拨盘框
作用简介
-
提供一个圆形范围控制器(如速度计或电位器)
-
适用于用户在可编程定义的范围内控制值,范围可以是环绕的或非环绕的
-
继承自 QAbstractSlider,行为类似于滑块,通常用于需要正方形小部件的场合
-
QAbstractSlider
-
是 QSlider、QScrollBar 和 QDial 等类的基类
-
提供了滑动条控件的基本功能,包括值范围的设置、步长的调整等
-
允许用户通过滑动或点击的方式在一个连续范围内选择值
-
-
(12)Horizontal Scroll Bar:水平滚动条
(13)Vertical Scroll Bar:垂直滚动条
QScrollBar
作用简介
-
继承自 QAbstractSlider
-
QAbstractSlider
-
是 QSlider、QScrollBar 和 QDial 等类的基类
-
提供了滑动条控件的基本功能,包括值范围的设置、步长的调整等
-
允许用户通过滑动或点击的方式在一个连续范围内选择值
-
-
-
提供垂直或水平滚动条,允许用户访问超出显示区域的文档部分
-
通过滚动条提供文档当前显示位置和可视文档部分的可视化指示
(14)Horizontal Slider:水平滑动条
(15)Vertical Slider:垂直滑动条
QSlider
作用简介
-
继承自 QAbstractSlider
-
QAbstractSlider
-
是 QSlider、QScrollBar 和 QDial 等类的基类
-
提供了滑动条控件的基本功能,包括值范围的设置、步长的调整等
-
允许用户通过滑动或点击的方式在一个连续范围内选择值
-
-
-
提供垂直或水平滑动条小部件,用于控制有界值
-
用户可以沿着凹槽移动滑块手柄,并将其位置转换为合法范围内的整数值
(16)Key sequence Edit:按键序列编辑框
作用简介
-
继承自 QWidget
-
允许用户选择和记录 QKeySequence,通常用于设置快捷方式
-
当小部件接收到焦点并在用户释放最后一个键后一秒钟结束时,启动快捷键记录