首页 / 资讯中心 / 文章详情

PySide6 QDateTimeEdit 实战:6 步做出专业日期输入框

PySide6 QDateTimeEdit 实战:6 步做出专业日期输入框 ★ FEATURED ARTICLE
PySide6 QDateTimeEdit 实战6 步做出专业日期输入框【免费下载链接】PySide6-Code-Tutorial可能是最好的PySide6中文教程用代码实例讲解PySide6附优质Demos、图标库、QSS皮肤、相关文章等分享项目地址: https://gitcode.com/GitHub_Trending/py/PySide6-Code-Tutorial做报名表单时你常常需要用户填出生日期做排班系统又得让员工挑一个工作日和开始时间。日期时间控件 QDateTimeEdit 用几行配置就能接住这类需求。PySide6-Code-Tutorial 项目为它专门设了独立章节配套可直接运行的示例代码本文带你从跑起来讲到接进业务共 6 步。最小可运行代码先拿到一个能用的日期输入框先别管配置把它放到窗口里跑起来。QDateTimeEdit 不传参也能创建但注意空构造出来的是个空壳内部日期值无效控件会显示一串短横线占位。稳妥做法是创建后立刻赋一个有效值from PySide6 import QtCore, QtWidgets # 空构造控件能用但内部日期值无效显示占位横线 self.dte QtWidgets.QDateTimeEdit(self) # 补上有效初始值这里取当前日期时间 self.dte.setDateTime(QtCore.QDateTime.currentDateTime()) self.dte.move(200, 200) # 顺手指定位置补一句除了空构造 赋值构造函数也直接接受 QDate、QTime、QDateTime初始值想设成今天传一行QtCore.QDate.currentDate()就行。完整窗口版看创建示例源码。本文所有示例都来自这个项目仓库全是这种能直接跑、直接见效果的小脚本。核心配置四件套范围、格式、步长、日历弹窗第 2 到第 5 步全在这一节。真实项目里这四项几乎是必配项挨个过。① 如何限制可选日期范围日期范围限制用户不该能选到一百年前或一百年后。日期时间模式下用 setMinimumDateTime、setMaximumDateTime 卡上下限只显示日期时setDateRange 直接吃两个 QDate只显示时间则用 setTimeRange 传两个 QTime。超出范围的手输文本控件会自动纠正到范围内最近的合法值不用你自己拦截# 示例只允许选 2024-03 到 2026-12 之间的日期时间 self.dte.setMinimumDateTime(QtCore.QDateTime(2024, 3, 1, 0, 0, 0)) self.dte.setMaximumDateTime(QtCore.QDateTime(2026, 12, 31, 23, 59, 59)) # 纯日期场景两个 QDate 就够了 self.dte.setDateRange(QtCore.QDate(2024, 3, 1), QtCore.QDate(2026, 12, 31))② 显示格式怎么写setDisplayFormat 一次讲清默认显示跟随系统区域设置。想自定义风格调 setDisplayFormat 即可。格式串和 QLocale 的记法一致yyyy 是四位年、MM 是月、dd 是日、HH 是 24 小时制、mm 是分、ss 是秒年时这类中文直接写就行不会被当记号解析。只想显示时间的话写 HH:mm:ss 这一句即可。# 换两种风格先日期后年的欧洲写法、纯中文写法 self.dte.setDisplayFormat(dd/MM/yyyy) # 15/03/2024 self.dte.setDisplayFormat(yyyy年MM月dd日) # 2024年3月15日③ 增减步长怎么定箭头点一下变多少上下箭头的默认步长是 1。纯日期控件里步长 1 代表 1 天想让员工按周挑班设成 7 更顺。业务要求每次调 15 分钟时步长按格式串里显示的时间精度生效。另外有个自适应模式步长会跟着光标所在字段自动缩放精度混用的场景值得开self.dte.setSingleStep(7) # 按周跳 # 步长随光标位置自适应适合年/月/日都要频繁调的界面 self.dte.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType)④ 一键开启 Qt 日历弹窗一行代码控件旁边多一个下拉按钮点开就是可视化日历。挑日期这事点日历永远比敲键盘、点箭头高效# 下拉按钮 日历面板日期选择体验直接拉满 self.dte.setCalendarPopup(True)这里先埋个雷【免费下载链接】PySide6-Code-Tutorial可能是最好的PySide6中文教程用代码实例讲解PySide6附优质Demos、图标库、QSS皮肤、相关文章等分享项目地址: https://gitcode.com/GitHub_Trending/py/PySide6-Code-Tutorial创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站