文章目录
- 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参数表示新的文本内容。这个信号不会由代码对文本的修改触发。 |
-
代码示例:使用 QLineEdit 创建编辑框,并且用户输入信息可以回响。

-
setPlaceholderText():设置默认文字;setEchoMode(QLineEdit:: ):设置文字样式;setInputMask():设置文字格式。
- 连接槽函数,实现输入信息后的回响操作。

- 代码示例:判断两次输入信息是否一致。
- 使用 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) |
文本被选中 / 取消选中时触发。 |
- 代码示例:在多行输入框中输入信息,可以显示到 QLabel 中。
- 建立连接关系。
- selectionChanged():是选中改变时触发的信号。

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

-
按下ctrl+z触发undoAvailable()。

-
按下ctrl+y触发redoAvailable()。

- 选中文本时触发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 时有效)。 |
-
addItem(QString)可以向 QComboBox 中添加选项。

-
连接槽函数。

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,表示当前的数值。 |
- 创建 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 的偏移量 (时差)。 |
- 创建 QDateTimeEdit 日期微调框。

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

Slider
使用 QSlider 表示一个滑动条。
属性 |
说明 |
value |
持有的数值。 |
minimum |
最小值。 |
maximum |
最大值。 |
singleStep |
按下方向键的时候改变的步长。 |
pageStep |
按下 pageUp/pageDown 的时候改变的步长。 |
sliderPosition |
滑动条显示的初始位置。 |
tracking |
外观是否会跟踪数值变化。默认值为 true。一般不需要修改。 |
orientation |
滑动条的方向是水平还是垂直。 |
invertedAppearance |
是否要翻转滑动条的方向。 |
tickPosition |
刻度的位置。 |
tickInterval |
刻度的密集程度。 |
信号 |
说明 |
valueChanged (int) |
数值改变时触发。 |
rangeChanged (int, int) |
范围变化时触发。 |
- 创建一个滑动条 QSlider 。
