Qt:12.输入类控件(QSpinBox-整数值输入的小部件、QDateEdit、QTimeEdit、QDateTimeEdit- 日期和时间输入的控件)

目录

一、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直接获得天数。
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用以下代码来清空当前窗口中所有控件输入的数据: ```python import PyQt5.QtWidgets as qtw def clear_widgets(widget): """ Recursively clear all widgets in a layout and their children. """ if isinstance(widget, qtw.QLineEdit): widget.clear() elif isinstance(widget, qtw.QTextEdit): widget.clear() elif isinstance(widget, qtw.QComboBox): widget.setCurrentIndex(0) elif isinstance(widget, qtw.QCheckBox): widget.setChecked(False) elif isinstance(widget, qtw.QRadioButton): widget.setChecked(False) elif isinstance(widget, qtw.QGroupBox): widget.setChecked(False) elif isinstance(widget, qtw.QSpinBox): widget.setValue(0) elif isinstance(widget, qtw.QDoubleSpinBox): widget.setValue(0.0) elif isinstance(widget, qtw.QDateEdit): widget.setDate(qtw.QDate.currentDate()) elif isinstance(widget, qtw.QTimeEdit): widget.setTime(qtw.QTime.currentTime()) elif isinstance(widget, qtw.QDateTimeEdit): widget.setDateTime(qtw.QDateTime.currentDateTime()) elif isinstance(widget, qtw.QListWidget): widget.clear() elif isinstance(widget, qtw.QTableWidget): widget.clearContents() widget.setRowCount(0) elif isinstance(widget, qtw.QGridLayout): for i in range(widget.count()): clear_widgets(widget.itemAt(i).widget()) # Example usage: # clear all widgets in the current window clear_widgets(self) ``` 这个函数可以递归地清空一个布局中的所有控件及其子控件中的输入数据。您可以在需要清空数据的地方调用此函数,例如在一个按钮的点击事件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S+叮当猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值