常用控件(三)

QLineEdit

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

核心属性:

属性 说明
text 输入框中的文本
inputMask 输入内容格式约束
maxLength 最大长度
frame 是否添加边框
echoMode 显示方式: 1. QLineEdit::Normal: 这是默认值,文本框会显示输入的文本。2. QLineEdit::Password: 这种模式下,输入的字符会被隐藏,通常使用(*)或(=)来替换 3. 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是新的⽂本。代码对⽂本的修改不能触发这个信号.

eg1: 使用QLineEdit控件来录入用户信息,并且将用户信息打印在控制台:
在这里插入图片描述
当我们点击确认的时候,就能够在控制台打印接收到的消息
核心代码:
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述

eg2:使用验证器来对输入的内容进行验证,当验证通过时,则将提交按钮设置为可点击,反之则将提交按钮设置为不可点击;
设计思路:
当输入框中的内容发生变化的时候,QLineEdit会发出textEdited信号,并且这个信号还会携带上此时输入框中的内容,此时我们可以捕捉这个信号,然后在对应的槽函数中使用验证器来对输入框中的内容进行验证,验证通过则将提交按钮设置为可用状态,否则则将提交按钮设置为禁用状态;
这个验证器Qt,主要有以下几种:
在这里插入图片描述
针对于验证器,我们可以将这个验证器设置进QLineEdit然后进行使用,也可以每次捕捉textEdited信号的时候创建出来使用,这里我们选择第一种做法;
核心代码如下:
在这里插入图片描述
运行结果:
在这里插入图片描述

eg3:验证两次输入的密码一致
核心代码:
在这里插入图片描述
在这里插入图片描述
eg4: 切换显示密码
在这里插入图片描述
核心代码:
在这里插入图片描述
在这里插入图片描述

QTextEdit

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

核心属性:

属性 说明
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) ⽂本被选中/取消选中时触发

eg1:获取多行输入框的内容
在这里插入图片描述

核心代码:
在这里插入图片描述
运行结果
在这里插入图片描述
eg2:验证输入框的各种信号
在这里插入图片描述

QComboBox

QComboBox表示下拉框;

核心属性:

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

核心信号:

信号 说明
activated(int) 当⽤⼾选择了⼀个选项时发出.
activated(const QString & text) 当⽤⼾选择了⼀个选项时发出
currentIndexChanged(int) 当前选项改变时发出.
currentIndexChanged(const QString & text) 当前选项改变时发出
editTextChanged(const QString & text) 当编辑框中的⽂本改变时发出(editable 为 true 时有效)

eg1: 使用下拉框模拟麦当劳点餐
在这里插入图片描述

核心代码:
在这里插入图片描述
运行结果:
在这里插入图片描述
eg2:从⽂件中加载下拉框的选项
在这里插入图片描述
设计图:
在这里插入图片描述
核心代码:
在这里插入图片描述

运行结果:
在这里插入图片描述

QSpinBox

使⽤ 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, 表⽰当前的数值.

eg1:调整⻨当劳购物⻋中的份数.
设计图纸:
在这里插入图片描述
核心代码:
在这里插入图片描述
运行结果:
在这里插入图片描述

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 最⼤时间⽇期
timeSpec Qt::LocalTime :显⽰本地时间。Qt::UTC :显⽰协调世界时(UTC)。Qt::OffsetFromUTC :显⽰相对于UTC的偏移量(时差).

核心信号:

信号 说明
dateChanged(QDate) ⽇期改变时触发.
timeChanged(QTime) 时间改变时触发.
dateTimeChanged(QDateTime) 时间⽇期任意⼀个改变时触发.

eg1:编写一个日期计算器
在这里插入图片描述

核心代码:
在这里插入图片描述
运行结果:
在这里插入图片描述

QDial

旋纽

核心属性:

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

核心信号:

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

eg1:通过旋钮来控制窗口透明度

在这里插入图片描述

核心代码:

在这里插入图片描述
运行结果:
在这里插入图片描述

QSlider

QSlider 表⽰⼀个滑动条.

QSlider 和 QDial 都是继承⾃ QAbstractSlider , 因此⽤法上基本相同.

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 02:30:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 02:30:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 02:30:04       57 阅读
  4. Python语言-面向对象

    2024-07-11 02:30:04       68 阅读

热门阅读

  1. iOS 应用内存超过多少会收到系统内存警告 ?

    2024-07-11 02:30:04       24 阅读
  2. 怎么在windows、linux、mac上安装pnpm呢?

    2024-07-11 02:30:04       25 阅读
  3. 数据结构与算法基础篇--二分查找

    2024-07-11 02:30:04       20 阅读
  4. Redis原理-数据结构

    2024-07-11 02:30:04       24 阅读
  5. ArduPilot开源代码之AP_OpticalFlow_CXOF

    2024-07-11 02:30:04       28 阅读
  6. QT实现WebSocket通信

    2024-07-11 02:30:04       23 阅读
  7. Text2SQL提问中包括时间的实战方案

    2024-07-11 02:30:04       21 阅读
  8. 进程与线程的区别

    2024-07-11 02:30:04       22 阅读
  9. HTTP有哪些请求方式?

    2024-07-11 02:30:04       20 阅读
  10. 笔记

    2024-07-11 02:30:04       20 阅读
  11. 代码随想录Day76(图论Part11)

    2024-07-11 02:30:04       24 阅读