【Qt】控件——Qt输入类控件、常见的输入类控件、输入类控件的使用、Line Edit、Text Edit、Combo Box、Spin Box

文章目录

  • Qt
    • [5. Qt显示类控件](#5. Qt显示类控件)
      • [Line Edit](#Line Edit)
      • [Text Edit](#Text Edit)
      • [Combo Box](#Combo Box)
      • [Spin Box](#Spin Box)
      • QDateTimeEdit
      • Dial
      • Slider

Qt

5. Qt显示类控件

Line Edit

QLineEdit 用于表示单行输入框。可以输入一段文本,但是不能换行。

属性 说明
text 输入框中的文本
inputMask 输入内容格式约束
maxLength 最大长度
frame 是否添加边框
echoMode 显示方式
QLineEdit::Normal 这是默认值,文本框会显示输入的文本
QLineEdit::Password 在这种模式下,输入的字符会被隐藏,通常用星号(*)或等号(=)代替
QLineEdit::NoEcho 在这种模式下,文本框不会显示任何输入的字符
cursorPosition 光标所在位置
alignment 文字对齐方式, 设置水平和垂直方向的对齐
dragEnabled 是否允许拖拽
readOnly 是否是只读的(不允许修改)
placeHolderText 当输入框内容为空的时候, 显示什么样的提示信息
clearButtonEnabled 是否会自动显示出 "清除按钮"

信号 说明
void cursorPositionChanged(int old, int new) 当光标位置改变时发出此信号。old参数表示先前的光标位置,new参数表示新的光标位置。
void editingFinished() 当按下返回键或回车键,或者行编辑失去焦点时,发出此信号。这通常表示用户已完成编辑。
void returnPressed() 当按下返回键或回车键时发出此信号。如果设置了验证器,验证通过后才能触发此信号。
void selectionChanged() 当选中的文本改变时,发出此信号。这可以用于检测用户是否选择了不同的文本片段。
void textChanged(const QString &text) 当QLineEdit中的文本改变时,发出此信号。text参数表示新的文本内容。这个信号对代码和用户输入的文本修改都会触发。
void textEdited(const QString &text) 当QLineEdit中的文本通过用户输入(而非代码修改)改变时,发出此信号。text参数表示新的文本内容。这个信号不会由代码对文本的修改触发。

  1. 代码示例:使用 QLineEdit 创建编辑框,并且用户输入信息可以回响。

  2. setPlaceholderText():设置默认文字;setEchoMode(QLineEdit:: ):设置文字样式;setInputMask():设置文字格式。

  1. 连接槽函数,实现输入信息后的回响操作。

  1. 代码示例:判断两次输入信息是否一致。

  1. 使用 QString 接收文字并且进行判断。

Text Edit

QTextEdit 表示多行输入框。也是一个富文本 & markdown 编辑器。并且能在内容超出编辑框范围时自动提供滚动条。

属性 说明
markdown 输入框内持有的内容。支持 markdown 格式。能够自动的对 markdown 文本进行渲染成 html。
html 输入框内持有的内容。可以支持大部分 html 标签。包括 img 和 table 等。
placeHolderText 输入框为空时提示的内容。
readOnly 是否是只读的。
undoRedoEnable 是否开启 undo /redo 功能。按下 ctrl + z 触发 undo,按下 ctrl + y 触发 redo。
autoFormating 开启自动格式化。
tabstopWidth 按下缩进占多少空间。
overwriteMode 是否开启覆盖写模式。
acceptRichText 是否接收富文本内容。
verticalScrollBarPolicy 垂直方向滚动条的出现策略。
Qt::ScrollBarAsNeeded 根据内容自动决定是否需要滚动条。这是默认值。
Qt::ScrollBarAlwaysOff 总是关闭滚动条。
Qt::ScrollBarAlwaysOn 总是显示滚动条。
horizontalScrollBarPolicy 水平方向滚动条的出现策略。
Qt::ScrollBarAsNeeded 根据内容自动决定是否需要滚动条。这是默认值。
Qt::ScrollBarAlwaysOff 总是关闭滚动条。
Qt::ScrollBarAlwaysOn 总是显示滚动条。

信号 说明
textChanged () 文本内容改变时触发。
selectionChanged () 选中范围改变时触发。
cursorPositionChanged () 光标移动时触发。
undoAvailable (bool) 可以进行 undo 操作时触发。
redoAvailable (bool) 可以进行 redo 操作时触发。
copyAvaiable (bool) 文本被选中 / 取消选中时触发。

  1. 代码示例:在多行输入框中输入信息,可以显示到 QLabel 中。

  1. 建立连接关系。

  1. selectionChanged():是选中改变时触发的信号。

  1. 输入位置改变时触发cursorPositionChanged()信号。

  1. 按下ctrl+z触发undoAvailable()。

  2. 按下ctrl+y触发redoAvailable()。

  1. 选中文本时触发copyAvailable()。

Combo Box

QComboBox 表示下拉框。

属性 说明
currentText 当前选中的文本。
currentIndex 当前选中的条目下标。从 0 开始计算。如果当前没有条目被选中,值为 -1。
editable 是否允许修改。设为 true 时,QComboBox 的行为就非常接近 QLineEdit,也可以设置 validator。
iconSize 下拉框图标(小三角)的大小。
maxCount 最多允许有多少个条目。

方法 说明
addItem (const QString&) 添加一个条目。
currentIndex () 获取当前条目的下标,从 0 开始计算。如果当前没有条目被选中,值为 -1。
currentText () 获取当前条目的文本内容。

信号 说明
activated (int)、activated (const QString & text) 当用户选择了一个选项时发出。这个时候相当于用户点开下拉框,并且鼠标划过某个选项,此时还没有确认做出选择。
currentIndexChanged (int)、currentIndexChanged (const QString & text) 当前选项改变时发出。此时用户已经明确地选择了一个选项。用户操作或者通过程序操作都会触发这个信号。
editTextChanged (const QString & text) 当编辑框中的文本改变时发出(editable 为 true 时有效)。

  1. addItem(QString)可以向 QComboBox 中添加选项。

  2. 连接槽函数。

Spin Box

使用 QSpinBox 或者 QDoubleSpinBox 表示 "微调框", 它是带有按钮的输入框。可以用来输入整数 / 浮点数。通过点击按钮来修改数值大小。

属性 说明
value 存储的数值。
singleStep 每次调整的 "步长"。按下一次按钮数据变化多少。
displayInteger 数字的进制。例如 displayInteger 设为 10,则是按照 10 进制表示。设为 2 则为 2 进制表示。
minimum 最小值。
maximum 最大值。
suffix 后缀。
prefix 前缀。
wrapping 是否允许换行。
frame 是否带边框。
alignment 文字对齐方式。
readOnly 是否允许修改。
buttonSymbol 按钮上的图标。
UpDownArrows 上下箭头形式。
PlusMinus 加减号形式。
NoButtons 没有按钮。
accelerated (加速的) 按下按钮时是否为快速调整模式。
correctionMode 输入有误时如何修正。
QAbstractSpinBox::CorrectToPreviousValue 如果用户输入了一个无效的值(例如,在只能显示正整数的 SpinBox 中输入了负数),那么 SpinBox 会恢复为上一个有效值。例如,如果 SpinBox 的初始值是 1,用户输入了 -1(无效),然后 SpinBox 会恢复为 1。
QAbstractSpinBox::CorrectToNearestValue 如果用户输入了一个无效的值,SpinBox 会恢复为最接近的有效值。例如,如果 SpinBox 的初始值是 1,用户输入了 -1(无效),那么 SpinBox 会恢复为 0。
keyboardTrack 是否开启键盘跟踪。设为 true,每次在输入框输入一个数字,都会触发一次 valueChanged () 和 textChanged () 信号。设为 false,只有在最终按下 enter 或者输入框失去焦点,才会触发 valueChanged () 和 textChanged () 信号。

信号 说明
textChanged (QString) 微调框的文本发生改变时会触发。参数 QString 带有前缀和后缀。
valueChanged (int) 微调框的文本发生改变时会触发。参数 int,表示当前的数值。

  1. 创建 QSpinBox 微调框。

QDateTimeEdit

使用 QDateTimeEdit 作为时间日期的微调框。

属性 说明
dateTime 时间日期的值。形如 2000/1/1 0:00:00。
date 单纯日期的值。形如 2001/1/1。
time 单纯时间的值。形如 0:00:00。
displayFormat 时间日期格式。形如 yyyy/M/d H:mm。y 表示年份。M 表示月份。d 表示日期。H 表示小时。m 表示分钟。s 表示秒。
minimumDateTime 最小时间日期。
maximumDateTime 最大时间日期。
Qt::LocalTime 显示本地时间。
Qt::UTC 显示协调世界时(UTC)。
Qt::OffsetFromUTC 显示相对于 UTC 的偏移量 (时差)。

  1. 创建 QDateTimeEdit 日期微调框。

Dial

使用 QDial 表示一个旋钮。

属性 说明
value 持有的数值。
minimum 最小值。
maximum 最大值。
singleStep 按下方向键的时候改变的步长。
pageStep 按下 pageUp/pageDown 的时候改变的步长。
sliderPosition 界面上旋钮显示的初始位置。
tracking 外观是否会跟踪数值变化。默认值为 true。一般不需要修改。
wrapping 是否允许循环调整。即数值如果超过最大值,是否允许回到最小值。(调整过程能否 "套圈")。
notchesVisible 是否显示刻度线。
notchTarget 刻度线之间的相对位置。数字越大,刻度线越稀疏。

信号 说明
valueChanged (int) 数值改变时触发。
rangeChanged (int, int) 范围变化时触发。

  1. 创建一个旋钮 QDial 。

Slider

使用 QSlider 表示一个滑动条。

属性 说明
value 持有的数值。
minimum 最小值。
maximum 最大值。
singleStep 按下方向键的时候改变的步长。
pageStep 按下 pageUp/pageDown 的时候改变的步长。
sliderPosition 滑动条显示的初始位置。
tracking 外观是否会跟踪数值变化。默认值为 true。一般不需要修改。
orientation 滑动条的方向是水平还是垂直。
invertedAppearance 是否要翻转滑动条的方向。
tickPosition 刻度的位置。
tickInterval 刻度的密集程度。

信号 说明
valueChanged (int) 数值改变时触发。
rangeChanged (int, int) 范围变化时触发。

  1. 创建一个滑动条 QSlider 。

相关推荐
sam-zy几秒前
MFC用List Control 和Picture控件实现界面切换效果
c++·mfc
爱码小白19 分钟前
PyQt5 学习方法之悟道
开发语言·qt·学习方法
aaasssdddd9621 分钟前
C++的封装(十四):《设计模式》这本书
数据结构·c++·设计模式
发呆小天才O.oᯅ27 分钟前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
qincjun1 小时前
文件I/O操作:C++
开发语言·c++
星语心愿.1 小时前
D4——贪心练习
c++·算法·贪心算法
汉克老师2 小时前
2023年厦门市第30届小学生C++信息学竞赛复赛上机操作题(三、2023C. 太空旅行(travel))
开发语言·c++
single5942 小时前
【c++笔试强训】(第四十一篇)
java·c++·算法·深度优先·图论·牛客
yuanbenshidiaos2 小时前
C++-----函数与库
开发语言·c++·算法
Lenyiin2 小时前
3354. 使数组元素等于零
c++·算法·leetcode·周赛