输入窗口部件(Input Widgets)-Qt-思维导图-学习笔记

输入窗口部件(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
  • 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
  • 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
  • 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,通常用于设置快捷方式

  • 当小部件接收到焦点并在用户释放最后一个键后一秒钟结束时,启动快捷键记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木不迷茫(˵¯͒¯͒˵)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值