目录
一、QSpinBox-整数值输入的小部件:
1.1QSpinBox介绍:
1.2属性介绍:
1.3通用属性介绍:
1.4信号介绍:
二、QDateEdit、QTimeEdit、QDateTimeEdit- 日期和时间输入的控件:
2.1QDateEdit、QTimeEdit、QDateTimeEdit介绍:
2.2 通用属性介绍:
2.3QDateTimeEdit属性介绍:
2.4信号介绍:
2.5计算两个事件之间的差值:
一、QSpinBox-整数值输入的小部件:
1.1QSpinBox介绍:
- QSpinBox 是 Qt 中用于数值输入的小部件。
- 它提供了一个文本框和上下箭头按钮,用户可以通过点击箭头按钮或直接输入数字来调整数值。
1.2属性介绍:
suffix
- 显示在值后面的文本。
- setSuffix(const QString &suffix)
- suffix() const
prefix
- 显示在值前面的文本。
- setPrefix(const QString &prefix)
- prefix() const
minimum
- 允许的最小值。
- setMinimum(int min)
- minimum() const
maximum
- 允许的最大值。
- setMaximum(int max)
- maximum() const
singleStep
- 每次点击箭头按钮时增减的步长。
- setSingleStep(int step)
- singleStep() const
stepType
- 步长的类型,决定了增减值的方式(整数步长或自适应步长)。
- setStepType(QAbstractSpinBox::StepType stepType)
- stepType() const
value
- 当前的值。
- setValue(int value)
- value() const
displayIntegerBase
- 显示整数的禁止(如十进制、十六进制等)。
- setDisplayIntegerBase(int base)
- displayIntegerBase() const
1.3通用属性介绍:
wrapping
- 是否启用环绕模式。当启用时,如果增加值超过最大值,则从最小值开始,反之亦然。
- setWrapping(bool wrap)
- wrapping() const
frame
- 是否显示边框。
- setFrame(bool frame)
- hasFrame() const
alignment
- 文本对齐方式。
- setAlignment(Qt::Alignment alignment)
- alignment() const
readOnly
- 是否为只读模式。当设置为只读时,用户无法编辑文本框内容。
- setReadOnly(bool readOnly)
- isReadOnly() const
buttonSymbols
- 控制显示按钮符号的类型(上下箭头、加减号等)。
- setButtonSymbols(QAbstractSpinBox::NoButtons/UpDownArrows/PlusMinus)
- buttonSymbols() const
specialValueText
- 当值为最小值时显示的特殊文本。
- setSpecialValueText(const QString &text)
- specialValueText() const
accelerated
- 是否启用加速模式。启用时,当用户按住上下按钮时,值的变化速度会加快。
- setAccelerated(bool)
- isAccelerated() const
correctionMode
- 设置修正模式,控制用户输入的纠正方式。
- setCorrectionMode(QAbstractSpinBox::CorrectionMode mode)
- correctionMode() const
keyboardTracking
- 是否启用键盘跟踪。启用时,值会在每次键盘输入后立即更新;禁用时,只有在编辑完成(如按下回车键或失去焦点)时才更新。
- setKeyboardTracking(bool on)
- keyboardTracking() const
showGroupSeparator
- 是否显示千位分隔符(如,1,000)。
- setShowGroupSeparator(bool on)
- showGroupSeparator() const
1.4信号介绍:
valueChanged(int)
- 当数值发生变化时发射此信号。传递的新值是整数类型。
valueChanged(const QString&)
- 当数值发生变化时发射此信号。传递的新值是字符串类型。
editingFinished()
- 当用户编辑完成(如按下回车键或旋转框失去焦点)时发射此信号。
二、QDateEdit、QTimeEdit、QDateTimeEdit- 日期和时间输入的控件:
2.1QDateEdit、QTimeEdit、QDateTimeEdit介绍:
- QDateEdit 是一个用于编辑日期的控件。它提供了一个下拉日历和手动输入的方式来选择日期。
- QTimeEdit 是一个用于编辑时间的控件。它提供了一个方便的方式来输入时间。
- QDateTimeEdit 是一个用于编辑日期和时间的控件。它结合了 QDateEdit 和 QTimeEdit 的功能。
2.2 通用属性介绍:
- 这三个控件都继承于同一个父类QAbstractSpinBox,所以他的通用属性和QSpinBox的通用属性相同。因此,上述1.3的通用属性通用适用于这三个控件。
2.3QDateTimeEdit属性介绍:
dateTime
- 当前日期和时间。
- dateTime() const
- setDateTime(const QDateTime &dateTime)
date
- 当前日期。
- date() const
- setDate(const QDate &date)
time
- 当前时间。
- time() const
- setTime(const QTime &time)
maximumDateTime
- 允许的最大日期和时间。
- maximumDateTime() const
- setMaximumDateTime(const QDateTime &dateTime)
minimumDateTime
- 允许的最小日期和时间。
- minimumDateTime() const
- setMinimumDateTime(const QDateTime &dateTime)
maximumDate
- 允许的最大日期。
- maximumDate() const
- setMaximumDate(const QDate &date)
minimumDate
- 允许的最小日期。
- minimumDate() const
- setMinimumDate(const QDate &date)
maximumTime
- 允许的最大时间。
- maximumTime() const
- setMaximumTime(const QTime &time)
minimumTime
- 允许的最小时间。
- minimumTime() const
- setMinimumTime(const QTime &time)
currentSection
- 当前编辑的部分(年、月、日、小时、分钟等)。
- currentSection() const
- setCurrentSection(QDateTimeEdit::Section section)
displayFormat
- 日期和时间的显示格式。
- displayFormat() const
- setDisplayFormat(const QString &format)
calendarPopup
- 是否显示日历弹出窗口。
- calendarPopup() const
- setCalendarPopup(bool enable)
currentSectionIndex
- 当前编辑部分的索引。
- currentSectionIndex() const
timeSpec
- 时间格式(如本地时间、UTC 等)。
- timeSpec() const
- setTimeSpec(Qt::TimeSpec spec)
- QDateEdit的属性就是除了和time有关的其他。
- QTimeEdit的属性就是除了和Date有关的其他。
2.4信号介绍:
dateChanged(const QDate &date)
- 当日期部分更改时发出此信号。
timeChanged(const QTime &time)
- 当时间部分更改时发出此信号。
dateTimeChanged(const QDateTime &dateTime)
- 当日期和时间更改时发出此信号。更改其中的一个或者所有都会发出信号。
editingFinished()
- 当用户完成编辑时发出此信号。移动焦点或执行其他操作。
2.5计算两个事件之间的差值:
- QDateTimeEdit提功了两个函数,用来计算两个时间之间的差值。
- dateTime1.daysTo(dateTime2),用于计算两个时间之间相差多少天。
- dateTime1.secsTo(dateTime2),用于计算两个时间之间相差秒。
- 由于daysTo会出现一些歧义问题,所以计算的时候建议使用secsTo获取到秒数后,执行触发计算,来算出天数。代替daysTo直接获得天数。