pyside中的数字及日期时间输入
qingheluo2024-11-01清河洛252
在Qt中,将日期时间的输入作为有特殊格式的数字输入数字的输入有两类,一类是在输入框中进行数字编辑操作,一类是通过滑块或拨盘(圆盘)进行数字的选择操作这一类组件有一些比较常用的都具备的公用方法isReadOnly()、setReadOnly(bool) 只读模式
placeholderText()、setPlaceholderText() 占位字符串
isUndoAvailable() 当前是否是可撤销状态,一旦对文本进行了编辑后会处于该状态
undo() 执行撤销操作
isRedoAvailable() 当前是否是可重...
在Qt中,将日期时间的输入作为有特殊格式的数字输入
数字的输入有两类,一类是在输入框中进行数字编辑操作,一类是通过滑块或拨盘(圆盘)进行数字的选择操作
这一类组件有一些比较常用的都具备的公用方法
isReadOnly()、setReadOnly(bool) 只读模式
placeholderText()、setPlaceholderText() 占位字符串
isUndoAvailable() 当前是否是可撤销状态,一旦对文本进行了编辑后会处于该状态
undo() 执行撤销操作
isRedoAvailable() 当前是否是可重做状态,一旦对编辑的文本执行了撤销操作就会处于可重做状态
redo() 执行重做操作
selectAll() 选中所有内容并将光标移至末尾
clear() 清空所有内容
copy() 复制选中文本
cut() 剪切选中文本
paste() 在光标当前位置执行粘贴,如果存在选中文本,会先删除选中文本
alignment()、setAlignment() 文本对齐方式
水平方向:Qt.AlignLeft、Qt.AlignRight、Qt.AlignHCenter、Qt.AlignJustify
垂直方向:Qt.AlignTop、Qt.AlignBottom、Qt.AlignVCenter、Qt.AlignBaseline
Qt.AlignCenter 水平和垂直都居中
默认为水平左对齐,垂直居中对齐
输入框 QAbstractSpinBox
在Qt中,数字输入框的一系列组件类均继承自QAbstractSpinBox类,都有一个内部上下箭头控件用于点击来改变输入框中的值
这个上下箭头的内部控件称之为微调框
QAbstractSpinBox类的方法及信号
isAccelerated()、setAccelerated(bool)
当按下微调框按钮时,值变动的频率是否加快,默认True
按下微调框的时间越长,值变动的频率就越快
buttonSymbols()、setButtonSymbols()
一个常量,表示微调框按钮样式
UpDownArrows 上下箭头
PlusMinus 加号(+)和减号(-)
NoButtons 不显示按钮
correctionMode()、setCorrectionMode()
一个常量,表示输入完成后如果值不合法的修正模式
CorrectToPreviousValue 恢复为最后一个有效值,默认值
CorrectToNearestValue 修改为最接近的有效值
hasFrame()、setFrame(bool)
整个输入框是否渲染边框,默认True
keyboardTracking()、setKeyboardTracking(bool)
是否启用键盘按键实时追踪,默认True
启用时每次按键输入时均会触发valueChanged和textChanged信号
禁用时仅会在按下回车键、失去焦点、点击微调键或者使用程序改变值时才发送
isGroupSeparatorShown()、setGroupSeparatorShown(bool)
是否启用千分位分隔符,默认False
specialValueText()、setSpecialValueText(str)
当值为最小值时的替换文本
wrapping()、setWrapping(bool) 是否启用值的循环
为True时,当值达到最大值时增加会设为最小值,反之亦然
为False时,当值已达到最大值时,增长按钮会禁用,反之亦然
操作相关
stepBy(int) 对内容进行微调,相当于点击了微调框
正数表示点击增长按钮的次数
负数表示点击降低按钮的次数
stepDown() 执行一次值的降低操作,相当于执行stepBy(-1)
stepUp() 执行一次值的增长操作,相当于执行stepBy(1)
text() 当前输入框的str格式内容,包含前缀和后缀
信号相关
valueChanged(int)
textChanged(str)
editingFinished() 编辑完成时,失去焦点或按下回车键
数字输入
QSpinBox用于int整数输入,QDoubleSpinBox用于float浮点数输入,两者的方法和信号相同,以下以QSpinBox为例来学习
QSpinBox([parent=None])
maximum()、setMaximum(int) 设定输入的最大值,默认为99
minimum()、setMinimum(int) 设定输入的最小值,默认为0
setRange(min, max) 同时设置最大值和最小值
prefix()、setPrefix(str) 前缀
suffix()、setSuffix(str) 后缀
singleStep()、setSingleStep(int)
点击上下箭头或进行鼠标滚轮滚动时的增量值,默认为1
如果小于1,则点击箭头不会有任何执行
cleanText() 获取值的str格式,不包含前缀和后缀
value()、setValue(int) 获取和设置值
QDoubleSpinBox组件独有
decimals()、setDecimals(int) 小数位数
日期和时间
日期和时间的相关输入类主要有QDateTimeEdit、QDateEdit和QTimeEdit
其中QDateTimeEdit继承自QAbstractSpinBox,QDateEdit和QTimeEdit继承自QDateTimeEdit
在日期及时间的相关编辑组件中,将内容分为了几个部分,如显示年份的部分,显示小时的部分等等
这些部分称之为"小节"(Section),需要根据不同的"小节"(Section)来进行单独的编辑
QDateEdit和QTimeEdit类就是通过修改显示的"小节"来实现的
在日期和时间的显示及信息处理时,需要使用到QtCore库中的QDateTime、QDate和QTime
QDateTimeEdit类的方法及信号
QDateTimeEdit([parent=None])
QDateTimeEdit(QDate[,parent=None])
QDateTimeEdit(QTime[,parent=None])
QDateTimeEdit(QDateTime[,parent=None])
calendarPopup()、setCalendarPopup(bool)
是否启用日历弹窗用来选择日期
启用时,微调框将仅显示向下箭头,点击后弹出日期选择弹窗
calendarWidget()、setCalendarWidget(calendarWidget) 日期选择弹窗组件
displayFormat()、setDisplayFormat(str) 显示格式
示例 "yyyy-MM-dd HH:mm:ss.zzz"
默认 "yyyy/M/d H:mm"
sectionCount() 小节的数量
currentSection()、setCurrentSection(Section)
currentSectionIndex()、setCurrentSectionIndex(int) 光标所在"小节"的索引
cursorPosition()、 setCursorPosition(int) 光标在整体内容中的索引
在QDateTimeEdit中定义了各小节的预定义常量
NoSection、YearSection、MonthSection、DaySection
HourSection、MinuteSection、SecondSection、MSecSection、AmPmSection
sectionText(Section) 返回给定小节的str格式内容
dateTime()、setDateTime(QDateTime) 日期和时间
date()、 setDate(QDate) 日期部分
time()、 setTime(QTime) 日期部分
dateTimeFromText(str) 将字符串解析为QDateTime
textFromDateTime(QDateTime) 将QDateTime转化为str
maximumDate()、setMaximumDate(QDate)、clearMaximumDate()
minimumDate()、setMinimumDate(QDate)、clearMinimumDate()
setDateRange(min_QDate,max_QDate)
maximumTime()、setMaximumTime(QTime)、clearMaximumTime()
minimumTime()、setMinimumTime(QTime)、clearMinimumTime()
setTimeRange(min_QTime,max_QTime)
maximumDateTime()、setMaximumDateTime(QDateTime)、clearMaximumDateTime()
minimumDateTime()、setMinimumDateTime(QDateTime)、clearMinimumDateTime()
setDateTimeRange(min_QDateTime,max_QDateTime)
信号相关
dateTimeChanged(dateTime)
dateChanged(date)
timeChanged(time)
QDateEdit和QTimeEdit分别拓展了一个信号
userDateChanged(date)
userTimeChanged(time)
QtCore库中的QDateTime、QDate和QTime三个表示日期时间的类中QDateTime类可以视为将QDate和QTime进行了结合
QDateTime()
QDateTime(year,mouth,day,hour,second,minute,second[,ms])
QDateTime::fromString(str, format)
返回使用format格式将str解析的QDateTime
toSecsSinceEpoch()、 setSecsSinceEpoch(secs) 秒时间戳
toMSecsSinceEpoch()、setMSecsSinceEpoch(msecs) 毫秒时间戳
time()、setTime(QTime) 时间部分
date()、setDate(QDate) 日期部分
增加一定的值,可以为负值
addYears(int) addMonths(int) addDays(int) addMSecs(int) addSecs(int)
指定的日期时间在当前日期时间之后的指定单位数值,可能获得负数
daysTo(dt:QDateTime) secsTo(dt) msecsTo(dt)
toLocalTime() 转化为本地日期时间,默认即使用本地时区
toUTC() 转化为UTC日期时间
toString(format) 转化为指定格式的字符串
QDate的特有方法
year() month() day()
dayOfWeek()(7表示星期日) dayOfYear()
daysInMonth() daysInYear()
getDate() tuple(year,mouth,day),表示年月日的三元组
setDate(year, month, day)
QTime的特有方法
hour() minute() second() msec()
msecsSinceStartOfDay() 返回自一天开始依赖的毫秒数
setHMS(h, m, s[, ms=0]) 设置时间,返回bool值,表示设置是否成功
QCalendarWidget 日期选择对话框
isDateEditEnabled()、setDateEditEnabled(bool)
是否启用编辑功能,默认True
当启用该功能后,按下键盘中的非功能按键后会弹出一个编辑框
可以在该编辑框中进行日期的编辑
dateEditAcceptDelay()、setDateEditAcceptDelay(int) 在编辑框进行编辑后的延迟,默认1500
当对编辑框编辑后,如果按下回车或失去焦点会立即在该组件中进行更新
如果编辑后未按下回车且未失去焦点,则在指定毫秒延迟之后会自动关闭编辑框并对组件进行更新
firstDayOfWeek()、setFirstDayOfWeek() 组件中第一列为周几
Qt.Monday、Qt.Tuesday、 Qt.Wednesday、Qt.Thursday、
Qt.Friday、Qt.Saturday、Qt.Sunday
默认为Qt.Monday
isGridVisible()、setGridVisible(bool) 是否渲染表格边框,默认为False
horizontalHeaderFormat()、setHorizontalHeaderFormat() 列标题(星期)格式
在QCalendarWidget中定义了常量表示显示格式
NoHorizontalHeader 不显示
SingleLetterDayNames 最短格式,如"一,二"
ShortDayNames 短格式,如"周一,周二",默认值
LongDayNames 完整格式,如"星期一,星期二"
verticalHeaderFormat()、setVerticalHeaderFormat() 行标题格式
ISOWeekNumbers 一年中第几周
NoVerticalHeader 不显示
maximumDate()、setMaximumDate(QDate)、clearMaximumDate()
minimumDate()、setMinimumDate(QDate)、clearMinimumDate()
setDateRange(min,max)
selectedDate()、setSelectedDate(QDate) 选定的日期
isNavigationBarVisible()、setNavigationBarVisible(bool)
是否显示顶部的年份和月份选择控件,默认True
selectionMode()、setSelectionMode() 是否可选,是enabled的替代函数
NoSelection 无法选择
SingleSelection 可以选择
yearShown() / monthShown() 获取当前界面上显示的年份/月份
设置当面界面上显示的年份/月份,并不会更改所选日期
showPreviousYear() showNextYear()
showPreviousMonth() showNextMonth()
setCurrentPage(year, month)
showToday() 显示当天日期
showSelectedDate() 显示所选日期
信号相关
activated(QDate) 当按下回车或双击日期时
clicked(QDate) 单击时,单击无效日期时不会发送
currentPageChanged(year, month) 当前界面显示的月份改变时
selectionChanged() 所选日期改变时
滑块和拨盘 QAbstractSlider
QSlider表示垂直或水平滑块,QDial表示拨盘(圆盘),两者均继承自QAbstractSlider
QAbstractSlider类的方法及信号
invertedAppearance()、setInvertedAppearance(bool)
是否反转最大值与最小值的位置,默认为False
invertedControls()、setInvertedControls(bool)
是否反转鼠标滚轮滚动时值的变化方向
默认False,表示向上滚动会增加值
orientation()、setOrientation() 显示方向
Qt.Horizontal 水平显示,默认值
Qt.Vertical 垂直显示
maximum()、setMaximum(int) 最大值
minimum()、setMinimum(int) 最小值
setRange(min, max) 同时设定最大值和最小值
singleStep()、setSingleStep(int) 滑块改变的步长,默认为1
isSliderDown()、setSliderDown(bool) 是否属于鼠标按下状态
更改该值会发送sliderPressed()和sliderReleased()信号
sliderPosition()、setSliderPosition(int) 当前值,发送sliderMoved()信号
value()、setValue(int) 当前值,发送valueChanged()信号
hasTracking()、setTracking(bool) 是否启用跟踪
默认为True,每当值改变时就发送valueChanged()信号,包含滑动时的值改动
如果为False,则仅当滑动结束(松开鼠标)时才发送valueChanged()信号
信号相关
valueChanged(int) 值发生变化时,tracking() 确定是否在用户交互期间发出此信号。
sliderPressed() 按下时(表示即将开始拖动)
sliderMoved(int) 滑动时
sliderReleased() 松开时
rangeChanged(min, max) 范围改变时
QSlider
表示垂直或水平滑块
QSlider([parent=None])
QSlider(orientation[, parent=None]) 指定显示方向
tickPosition()、setTickPosition() 滑块上刻度线的显示方式
QSlider.NoTicks 不显示,默认值
QSlider.TicksBothSides 两侧均显示
QSlider.TicksAbove 水平滑块上方
QSlider.TicksBelow 水平滑块下方
QSlider.TicksLeft 垂直滑块左侧
QSlider.TicksRight 垂直滑块右侧
tickInterval()、setTickInterval(int) 滑块上显示的刻度线之间的间隔
QDial
表示拨盘(圆盘)
notchesVisible()、setNotchesVisible(bool) 在圆盘外侧显示刻度线
wrapping()、setWrapping(bool) 圆盘底部开始和结束位置是否相邻