Python GUI编程网 > PyQt5常用控件属性和方法学习 > QDateTimeEdit时间和日期步长调节器
python教程

QDateTimeEdit时间和日期步长调节器

发布日期:2021年2月14日 10:01
阅读:2111
作者:Python GUI编程网

QDateTimeEdit时间和日期步长调节器

00:00 / 01:23
1x
2x
1.5x
1.25x
1x
0.8x
0.5x

QDateTimeEdit时间和日期步长调节器

################################
# PyQt5中文网 - PyQt5全套视频教程 #
#    https://www.PyQt5.cn/     #
#         主讲: 村长            #
################################

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)

    def test(self):
        pass




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_())