如何强制将PyQt5中QTimeEdit的显示设置为24小时制?
解决QTimeEdit强制24小时制的问题
可以通过指定显示格式+固定区域设置的方式,让QTimeEdit完全不受Windows系统时间格式影响,强制使用24小时制:
核心实现步骤
1. 强制指定显示格式
调用QTimeEdit的setDisplayFormat()方法,传入"HH:mm"格式字符串(注意HH是24小时制小时标识,hh对应12小时制):
from PyQt5.QtWidgets import QTimeEdit time_edit = QTimeEdit() time_edit.setDisplayFormat("HH:mm")
2. 固定区域设置(推荐)
仅设置格式可能在部分系统区域下失效,需将QTimeEdit的区域设置为C语言区域,彻底脱离系统区域的影响:
from PyQt5.QtWidgets import QTimeEdit from PyQt5.QtCore import QLocale time_edit = QTimeEdit() # 固定为C语言区域,避免系统区域干扰时间格式解析 time_edit.setLocale(QLocale(QLocale.C)) # 强制指定24小时制显示格式 time_edit.setDisplayFormat("HH:mm")
额外注意点
- 若需要限制用户输入的时间范围,可搭配
setMinimumTime()和setMaximumTime()方法约束。 - 测试时需切换系统时间格式为12小时制,验证是否仍保持
HH:mm的24小时制显示。
内容的提问来源于stack exchange,提问作者kelvinC
相关产品推荐
相关产品推荐

