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

打印 上一主题 下一主题

主题 1628|帖子 1628|积分 4884

Line Edit

QLineEdit用来表示单行输入框,可以输入一段文本,但是不能换行
焦点属性:

焦点信号
信号
说明
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输入框,提交按钮


进行输入框初始化

设置pushButton槽函数

inputMask功能比力有效,只能进行简单的验证

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

例:
在ui界面创建一个lineEdit和pushButton控件


设置提交按钮初始状态

只有当输入字符为正当手机号码时才允许进行提交

创建正则表达式及验证器

通过界说textEdited槽函数实现lindEdit内容发生修改就调用验证器


当输入以1开头,背面跟上10个数字的字符串时,就可以进行pushButton的点击


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内容

转到textEdit的textChanged槽函数



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

在构造函数中初始化ComboBox内容


在ui界面创建提交按钮pushButton

转到pushButton的clicked槽函数

能顺利获取到ComboBox内容



实现通过文件导入ComboBox内容
在ui界面创建一个label和ComboBox

在电脑创建一个txt文件,在其内输入不同专业

在构造函数读取文件内容

从而实现将文件内容设置为ComboBox选项



Spin Box

使用QSpinBox大概QDoubleSpinBox表示“微调框”,它时带有按钮的输入框,可以用来输入整数/浮点数,通过点击按钮来修改数值巨细
如:


焦点属性
属性
说明
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

再创建一个pushButton

在构造函数对得分范围进行初始化

转到pushButton的槽函数,将得分用qDebug进行输出


Date Edit 和Time Edit

使用DateEdit作为日期的微调框
使用TimeEdit作为时间的微调框
使用Date/Time Edit作为时间日期的微调框
三个控件使用方法雷同



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:ocalTime:表现本地时间
Qt::UTC:表现协调天下时
Qt::OffsetFromUTC:表现相对于UTC的偏移量(时差)


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

例:
实现一个时间盘算,盘算两个时间中间的间隔时多少天/多少小时
在ui界面创建两个datetime Edit,一个pushButton,一个label

转到pushButton的clicked槽函数


但是此时代码存在逻辑错误,若时间日期相隔几个小时,但不属于同一天,进行盘算时就会发生错误
如:

两日期相差6小时,却盘算出1天6小时

不使用daysto盘算日期差,通过秒数插值求日期


Dial

使用QDial表示一个旋钮

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

例:
通过旋钮控制窗口不透明度opcity
在ui界面创建一个旋钮

在构造函数进行初始化

转到dial的valueChanged槽函数




Slider

使用Slider表示一个滑动条
如:

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

焦点信号
信号
说明
valueChanged(int)
数值改变时触发
rangeChanged(int,int)
范围变化时触发
例:
通过两个不同方向的滑动条分别控制窗口宽度和高度

在构造函数翻转垂直方向滑动条(Vertical Silder)的方向

对滑动条进行初始化,将滑动条初始值设置为窗口的高度和宽度

转到滑动条的valueChanged槽函数,实现将horizentalSlider的值设置为窗口的宽度,将verticalSlider的值设置为窗口的高度

实现通过滑动条修改窗口巨细


实现通过自界说快捷键操控滑动条
在构造函数创建快捷键进行绑定,头文件进行声明槽函数


实现各个按键的槽函数,来通过快捷键发出信号,调用槽函数,在槽函数内对滑动条的值进行修改,滑动条值发生修改,发送信号,调用槽函数,修改窗口巨细



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

民工心事

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表