当前位置: 首页 PyQt5步长调节器 QDateTimeEdit时间日期调节器
add-vip

QDateTimeEdit时间日期调节器

一、学习指导

QDateTimeEdit时间日期调节器和之前学过的两种调节器有很多不一样的地方,但是也有很多共同点,在使用的时候主要是看你使用哪种构造方法,然后给予对应的设置。在后面对话框中我们还需要学习另一种时间日期对话框,和QDateTimeEdit的用途相似,但是有本质的区别,这里就不多说了。

二、代码演示

from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QDateTimeEdit时间和日期步长调节器 - PyQt5中文网")
        self.resize(600, 500)
        self.func_list()

    def func_list(self):
        self.func()

    def func(self):
        """
        QDateTimeEdit(parent: QWidget = None)
        QDateTimeEdit(Union[QDateTime, datetime.datetime], parent: QWidget = None)
        QDateTimeEdit(Union[QDate, datetime.date], parent: QWidget = None)
        QDateTimeEdit(Union[QTime, datetime.time], parent: QWidget = None)
        # 从构造函数可以看出,以下三个类没有继承关系
        QDateTime
        QDate
        QTime
        """
        """
        # 简单的构造方法
        self.qsb = QDateTimeEdit(self)  # 直接构造范围最小日期为:1752.9.14,最大日期为:9999.12.31
        self.qsb.resize(150, 40)
        self.qsb.move(150, 150)

        self.btn = QPushButton('按钮', self)
        self.btn.resize(60, 30)
        self.btn.move(150, 200)
        self.btn.pressed.connect(self.test)
        """
        # 传入QDateTime的一种构造方法
        # self.dt_tm = QDateTime(2020,1,15,11,31,55)
        self.dt_tm = QDateTime.currentDateTime()  # 当前时间
        self.dt_tm = self.dt_tm.addYears(2)  # 不会直接显示在控件中,要重新赋值
        self.dt_tm.offsetFromUtc()  # 此时与标准时间差

        self.qsb = QDateTimeEdit(self.dt_tm, self)
        self.qsb.resize(150, 40)
        self.qsb.move(150, 150)

        # QDate和QTime与上面差不多
        # 计时功能
        time = QTime.currentTime()
        time.start()
        btn = QPushButton(self)
        btn.clicked.connect(lambda: print(time.elapsed() / 1000))

        self.qsb1 = QDateTimeEdit(QDateTime.currentDateTime(), self)
        self.qsb2 = QDateTimeEdit(QDate.currentDate(), self)
        self.qsb3 = QDateTimeEdit(QTime.currentTime(), self)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())

下面再给大家一段代码,大家自己学习一下信号的使用,因为比较简单,我就不详细讲解了,代码中有注释,大家自己试试就可以了。


from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QDateTimeEdit日期和时间控件功能作用 - PyQt5中文网")
        self.resize(600, 500)
        self.func_list()

    def func_list(self):
        self.func()


    def func(self):
        self.qsb = QDateTimeEdit(self)
        self.qsb.resize(200, 40)
        self.qsb.move(150, 150)

        self.btn = QPushButton('按钮', self)
        self.btn.resize(60, 30)
        self.btn.move(150, 200)
        self.btn.pressed.connect(self.test)

    def test(self):
        '''
        # 时间显示格式
        self.qsb.setDisplayFormat('yyyy-mm-dd  mm:ss:zzz')
        # section控制
        print(self.qsb.sectionCount())
        self.qsb.setCurrentSectionIndex(2)  # 找到指定索引的section
        self.qsb.setCurrentSectionIndex(QDateTimeEdit.DaySection)  # 找到指定section的索引
        print(self.qsb.sectionText(QDateTimeEdit.DaySection))   # 获取指定位置文本内容

        # 日期时间范围
        self.qsb.setMaximumDateTime(QDateTime(2020,6,15,6,10))
        # 设定当前时间前后5天
        self.qsb.setDateTimeRange(QDateTime.currentDateTime().addDays(-5), QDateTime.currentDateTime().addDays(5))

        # 日历选择控件
        self.qsb.setCalendarPopup(True)
        # 获取时间和日期
        self.qsb.dateTime()
        '''
        # 可用信号
        self.qsb.dateTimeChanged.connect(lambda :print(self.qsb.dateTime()))
        self.qsb.timeChanged.connect(lambda :print(self.qsb.time()))
        self.qsb.dateChanged.connect(lambda :print(self.qsb.date()))

        # 时间(QTimeEdit)和日期(QDateEdit)控件与父控件(QDateTimeEdit)基本一样


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())


相关文章