PyQt5 QDateTimeEdit – 只获取QTime

  • Post category:Python

PyQt5是Python中的一个GUI图形界面编程库。QDateTimeEdit控件是PyQt5中的日期时间编辑控件,可以用于用户输入日期和时间。

如果只想获取编辑器中的时间部分,可以使用时间样式(setTimeRangesetDisplayFormat),并且在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只获取时间的方法,可以用于用户获取或更改时间部分。