PyQt5是Python中的一个GUI图形界面编程库。QDateTimeEdit控件是PyQt5中的日期时间编辑控件,可以用于用户输入日期和时间。
如果只想获取编辑器中的时间部分,可以使用时间样式(setTimeRange
和setDisplayFormat
),并且在PyQt5中已经内置了时间控件。下面给出两个完整示例说明。
示例1: 显示时间控件和获取当前时间
import sys
from PyQt5.QtWidgets import QApplication,QDateTimeEdit, QWidget, QVBoxLayout
from PyQt5.QtCore import QTime
class MyTime(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
time = QTime.currentTime()
self.timeEdit = QDateTimeEdit(self)
# 设置时间样式,只显示时间的控件
self.timeEdit.setDisplayFormat("HH:mm")
self.timeEdit.setTimeRange(time.addSecs(-3600), time.addSecs(3600))
vbox.addWidget(self.timeEdit)
self.setLayout(vbox)
# 获取当前时间
self.showTime()
def showTime(self):
currentTime = QTime.currentTime()
print("当前时间: ", currentTime.toString('HH:mm'))
if __name__ == '__main__':
app = QApplication(sys.argv)
t = MyTime()
t.show()
sys.exit(app.exec_())
该代码输出当前时间和显示一个时间编辑框,只允许编辑时间,不允许编辑日期。用户可以更改或查看编辑框中的时间部分。同时,可以从showTime
函数获取当前时间。
示例2:更改时间后更新新的时间信息
import sys
from PyQt5.QtWidgets import QApplication,QDateTimeEdit, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtCore import QTime
class MyTime(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
time = QTime.currentTime()
self.timeEdit = QDateTimeEdit(self)
self.btn = QPushButton("显示时间", self)
self.btn.clicked.connect(self.showTime)
# 设置时间格式,只显示时间的控件
self.timeEdit.setDisplayFormat("HH:mm")
self.timeEdit.setTimeRange(time.addSecs(-3600), time.addSecs(3600))
vbox.addWidget(self.timeEdit)
vbox.addWidget(self.btn)
self.setLayout(vbox)
def showTime(self):
# 获取更新后的时间并输出
time = self.timeEdit.time()
print("更新后的时间: ", time.toString('HH:mm'))
if __name__ == '__main__':
app = QApplication(sys.argv)
t = MyTime()
t.show()
sys.exit(app.exec_())
该代码显示一个时间编辑框,并有一个显示时间的按钮,点击后从showTime
函数获取更新后的时间。用户可以更改时间编辑框中的时间部分,然后点击按钮获取更改后的更改时间。
以上这两个示例提供了在PyQt5中QDateTimeEdit只获取时间的方法,可以用于用户获取或更改时间部分。