民工心事 发表于 6 天前

QT常见输入类控件及其属性

Line Edit

QLineEdit用来表示单行输入框,可以输入一段文本,但是不能换行
焦点属性:
https://i-blog.csdnimg.cn/direct/81ee60c6407c4e4b9b3a10389d68cdc7.png
焦点信号
信号
说明
void cursorPositionChanged(int
old,int new)
当鼠标移动时发出此型号,old为先前位置,new为新位置
void editingFinished()
当按返回或回车键时,或行编辑失去焦点时,发出此信号
void returnPressed()
当返回或回车键按下时发出此信号,假如设置了验证器,必须要验证通过才能触发
void selectionChanged()
当选中的文本发生改变时,发出此信号
void textChange(const QString
&text)
当QLineEdit中的文本改变时,发出此信号,test是新的文本。代码对文本的修改也能触发此信号。
void textEdited(const QString
&text)
当QLineEdit中的文本改变时,发出此信号,text时新的文本。代码对文本的修改不能触发此信号。

例:
实现用户能输入账号,暗码及提交
在ui界面创建label进行输入内容提示,创建对应的lineEdit输入框,提交按钮
https://i-blog.csdnimg.cn/direct/625b5790b446451c9c17c246b657ad98.png

进行输入框初始化
https://i-blog.csdnimg.cn/direct/89648e9dfc614b0bbcd114ad2ba0aeec.png
设置pushButton槽函数
https://i-blog.csdnimg.cn/direct/f0c8fa7b3e5f47b6b21f548f2f51a830.png
inputMask功能比力有效,只能进行简单的验证

若要实现比力复杂的验证必要使用“正则表达式”
正则表达式,本质上是一个带有特殊字符的字符串,特殊字符用来表示另一个字符串的特性,借助正则表达式来描述一些具有一定特定的字符串
随用随查,无需影象

例:
在ui界面创建一个lineEdit和pushButton控件
https://i-blog.csdnimg.cn/direct/c64dc2a30caa45b080061a2e27f44537.png

设置提交按钮初始状态
https://i-blog.csdnimg.cn/direct/d6591aa1d8ef4e46b7b85e647a5266cc.png
只有当输入字符为正当手机号码时才允许进行提交

创建正则表达式及验证器
https://i-blog.csdnimg.cn/direct/974fac0d1c024a5e9ff91d6de67c85ec.png
通过界说textEdited槽函数实现lindEdit内容发生修改就调用验证器
https://i-blog.csdnimg.cn/direct/3fe8c865207542808d68457efa7ad691.png
https://i-blog.csdnimg.cn/direct/6422616cae20420ba295cd96a465b831.png
当输入以1开头,背面跟上10个数字的字符串时,就可以进行pushButton的点击
https://i-blog.csdnimg.cn/direct/1252a04d1f074a9fad3a94d2bd978bb5.png

Text Edit

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

焦点属性
属性
说明

markdown
输入框持有的内容,支持
markdown格式,能够自动的对
markdown文本进行渲染成html
html
输入框持有的内容支持大部分
htm标签,包括img和table等
placeHolderText
输入框为空时提示的内容
readOnly
是否只读

undoRedoEnable
是否开启undo/redo功能
按下ctrl+z触发undo
按下ctrl+y触发redo
autoFormating
开启自动格式化
tabstopWidth
按下缩进占多少空间
overwirteMode
是否开启覆盖写模式
acceptRichText
是否结束富文本内容




verticalScrollBarPolicy
垂直方向滚动条的出现策略
Qt::ScorllBarAsNeeded:根据内容自动决定是否必要滚动条。这种默认值
Qt::ScorllBarAlwaysOff:总是关闭滚动条
Qt::ScorllBarAlwaysOn:总是表现滚动条
horizontalScrollBarPolicy
程度滚动条的出现策略
Qt::ScrollBarAsNeeded:根据内容自动决定是否必要滚动条。这是默认值
Qt::ScorllBarAlwaysOff:总是关闭滚动条
Qt::ScrollBarAlwaysOn:总数表现滚动条

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

例:
在ui界面创建一个textEdit用于接收输入内容,label用于表现textEdit内容
https://i-blog.csdnimg.cn/direct/7afe9ef8b94941bdac65225e439de7e4.png
转到textEdit的textChanged槽函数
https://i-blog.csdnimg.cn/direct/4f81a43183294536aa4dd9dbfbf85e6e.pnghttps://i-blog.csdnimg.cn/direct/b2892372ba964f81ab82a9db1556eb5f.png


Combo Box

QComboBox表示下拉框
焦点属性
属性
说明
currentText
当前选中的文本

currentIndex
当前选中的条目下标
从0开始盘算,假如当前没有条目被选中,值为-1

editable
是否允许修改
设置为true时,QComboBox的行就雷同于QLineEdit,也可以设置validator
iconSize
下拉框图标巨细
maxCount
最多允许有多少个条目

焦点接口
接口
说明
addItem(const QString&)
添加一个条目
currentIndex()
获取当前条目标下标
currentText()
获取当前条目标文本内容

焦点信号
信号
说明

activated(int)
activated(QString & text)
当用户选中了一个选项时发出
这个时候相当于用户点开下拉框,而且鼠标划过某个选项
此时还没有确认做出选择

currentIndexChanged(int)
currentIndexChanged(const
QString & text)
当前选项改变时发出
此时用户已经明确的选择了一个选项
用户操纵大概通过步伐操纵都会触发这个信号
editTextChanged(const QString &
text)
当编辑框中的文本改变时发出
(editable为true时有效)

例:
通过ComboBox模拟点餐
在ui界面创建两个label和两个ComboBox
https://i-blog.csdnimg.cn/direct/ca33c40aaff54faa92b82569c22dab58.png
在构造函数中初始化ComboBox内容
https://i-blog.csdnimg.cn/direct/0ca96fe7ecfb4245a643e42e6e0b16a4.png
https://i-blog.csdnimg.cn/direct/23a427eb6b2a4aabbc46aecf1fd9af4b.png
在ui界面创建提交按钮pushButton
https://i-blog.csdnimg.cn/direct/60eb157f3aea4a01b1c017177e26465a.png
转到pushButton的clicked槽函数
https://i-blog.csdnimg.cn/direct/2637561772d34c2eb4a9a210996395f6.png
能顺利获取到ComboBox内容



实现通过文件导入ComboBox内容
在ui界面创建一个label和ComboBox
https://i-blog.csdnimg.cn/direct/fd10333645384eb6b8269662feb27ba3.png
在电脑创建一个txt文件,在其内输入不同专业
https://i-blog.csdnimg.cn/direct/6429e2505f8a4d3da164e659d9544417.png
在构造函数读取文件内容
https://i-blog.csdnimg.cn/direct/89dace73c51844cc9557742a8feee15c.png
从而实现将文件内容设置为ComboBox选项
https://i-blog.csdnimg.cn/direct/6656d1ee6a7e4fda8223cabb7d4cf5c1.png


Spin Box

使用QSpinBox大概QDoubleSpinBox表示“微调框”,它时带有按钮的输入框,可以用来输入整数/浮点数,通过点击按钮来修改数值巨细
如:
https://i-blog.csdnimg.cn/direct/76ced8a37fd5452e88386b3f7e26213d.png

焦点属性
属性
说明
value
存储的数值
singleStep
每次调解的“步长”,按下一次按钮数据变化多少

displayInteger
数字的进制,比方displayInteger设为10,则是按十进制表示,设为2,则为2进制表示
minimum
最小值
maximum
最大值
suffix
后缀
prefix
前缀
wrapping
是否允许换行
frame
是否带边框
alignment
文字对齐方式
readOnly
是否允许修改

buttonSymbol
按钮上的图标
UpDownArrows:上箭头模情势
PlusMinus:加减号情势
NoButtons:没有按钮
accelerated
按下按钮时是否为快速调解模式



correctionMode
输入有误时怎样修正
QAbstractSpinBox::CorrectToPreviousValue:假如用户输入了一个无效的值,那么SpinBox会规复为上一个有效值
QAbstractSpinBox::CorrectToNearesValue:
假如用户输入了一个无效的值,SpinBox会规复为最接近的有效值。



keyboardTrack
是否开启键盘跟踪
设为true,每次在输入框输入一个数字,都会触发一次valueChanged()和
textChanged()信号
设为false,只有在终极按下enter大概输
入框失去焦点,才会触发valueChanged()
和textChanged()信号
焦点信号
信号
说明
textChanged(QString)
微调框的文本发生改变时会触发
参数QString带有前缀和后缀
valueChanged(int)
微调框的文本发生改变时会触发
参数int,表示当前的数值

例:
在ui界面创建两个label,一个SpinBox,一个DoubleSpinBox
https://i-blog.csdnimg.cn/direct/f5b1e9e76ddf4dc8bc6d4a2fa9411909.png
再创建一个pushButtonhttps://i-blog.csdnimg.cn/direct/5950b2d9299f4d159955d14811d74170.png
在构造函数对得分范围进行初始化
https://i-blog.csdnimg.cn/direct/0d16ec619a0a42a0b5bca5b7adb392d6.png
转到pushButton的槽函数,将得分用qDebug进行输出
https://i-blog.csdnimg.cn/direct/f0423c050d444186a3071790a1df0d1d.png

Date Edit 和Time Edit

使用DateEdit作为日期的微调框
使用TimeEdit作为时间的微调框
使用Date/Time Edit作为时间日期的微调框
三个控件使用方法雷同
https://i-blog.csdnimg.cn/direct/cda795365e0646d687837d668f16e0b3.png


DateTime Edit焦点属性
属性
说明
dateTime
时间日期的值,如2000/1/1 0:00:0
date
单纯日期的值,如2000/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:表现协调天下时
Qt::OffsetFromUTC:表现相对于UTC的偏移量(时差)


焦点信号
信号
说明
dateChanged(QDate)
日期改变时触发
timeChanged(QTime)
时间改变时触发
dataTimeChanged(QDateTime)
时间日期恣意一个改变时触发

例:
实现一个时间盘算,盘算两个时间中间的间隔时多少天/多少小时
在ui界面创建两个datetime Edit,一个pushButton,一个label
https://i-blog.csdnimg.cn/direct/08412d86d8084bb3ae49296e535fa929.png
转到pushButton的clicked槽函数
https://i-blog.csdnimg.cn/direct/11e9d36ec62c403c91e4f47a22d6a521.png

但是此时代码存在逻辑错误,若时间日期相隔几个小时,但不属于同一天,进行盘算时就会发生错误
如:
https://i-blog.csdnimg.cn/direct/8956371d3a3042738ffcf3753303f37c.png
两日期相差6小时,却盘算出1天6小时

不使用daysto盘算日期差,通过秒数插值求日期
https://i-blog.csdnimg.cn/direct/c19d7893ebe34fc2a9b42a97c78e5f0f.png

Dial

使用QDial表示一个旋钮
https://i-blog.csdnimg.cn/direct/ee9d1baf90c44dc2b40bbd3fb1648855.png
焦点属性
属性
说明
value
持有的数值
minimum
最小值
maximum
最大值
singleStep
按下方向键的时候改变的步长
pagesStrp
按下pageUp/pageDown的时候改变的步长
sliderPosition
界面上旋钮表现的初始位置
tracking
外观是否会跟踪数值变化
默认值为true,一样寻常无需修改
wrapping
是否允许循环调解
即数值假如凌驾最大值,是否允许回到最小值
notchesVisble
是否表现刻度线
notchTarget
刻度线之间的相对位置
数字越大,刻度线越稀疏

例:
通过旋钮控制窗口不透明度opcity
在ui界面创建一个旋钮
https://i-blog.csdnimg.cn/direct/7de9d8b77e134d238f87467aaba25189.png
在构造函数进行初始化
https://i-blog.csdnimg.cn/direct/db39633330fc4691a3634f891559cc71.png
转到dial的valueChanged槽函数
https://i-blog.csdnimg.cn/direct/7a76607e017b4e37a832994e1cca6d34.png
https://i-blog.csdnimg.cn/direct/8d460cb1c9bd46bfa22d7f0a33fab215.png


Slider

使用Slider表示一个滑动条
如:
https://i-blog.csdnimg.cn/direct/f0e38a86818a4a54b7b032a3ca75a96f.png
焦点属性
属性
说明
value
持有的数值
minimum
最小值
maximum
最大值
singleStep
按下方向键的时候改变的步长
pagesStrp
按下pageUp/pageDown的时候改变的步长
sliderPosition
滑动条表现的初始位置
tracking
外观是否会跟踪数值变化,
默认值为true,无需修改
orientation
滑动条的方向是程度还是垂直
invertedAppearance
是否要翻转滑动条的方向
tickPosition
刻度的位置
tickInterval
刻度的麋集程度

焦点信号
信号
说明
valueChanged(int)
数值改变时触发
rangeChanged(int,int)
范围变化时触发
例:
通过两个不同方向的滑动条分别控制窗口宽度和高度
https://i-blog.csdnimg.cn/direct/e750f04d0c7843c794d66454d89dbdf1.png
在构造函数翻转垂直方向滑动条(Vertical Silder)的方向
https://i-blog.csdnimg.cn/direct/5ba265e54ea4468aaca69b87d8765c5a.png
对滑动条进行初始化,将滑动条初始值设置为窗口的高度和宽度
https://i-blog.csdnimg.cn/direct/4376af631e284eed970393b8891bed54.png
转到滑动条的valueChanged槽函数,实现将horizentalSlider的值设置为窗口的宽度,将verticalSlider的值设置为窗口的高度
https://i-blog.csdnimg.cn/direct/e2a7b0ac21764f28b36cdce295c56d81.png
实现通过滑动条修改窗口巨细


实现通过自界说快捷键操控滑动条
在构造函数创建快捷键进行绑定,头文件进行声明槽函数
https://i-blog.csdnimg.cn/direct/ec242997dad3498ca1ccd454efdc70d5.png
https://i-blog.csdnimg.cn/direct/89aabc31b8be46f3bc17b25ebab38813.png
实现各个按键的槽函数,来通过快捷键发出信号,调用槽函数,在槽函数内对滑动条的值进行修改,滑动条值发生修改,发送信号,调用槽函数,修改窗口巨细
https://i-blog.csdnimg.cn/direct/e9713c08eec44d4686cb1c9004a97e69.png


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: QT常见输入类控件及其属性