QDateTimeEdit-----调节日期时间的控件

本文介绍了Qt框架中QDateTime、QDateTimeEdit、QDate和QTime类的使用方法,包括构造日期时间对象、设置显示格式、调整日期时间以及与世界时间的偏差计算。此外,还展示了QDateTimeEdit控件的section操作和格式化显示,以及如何获取和设置不同section的内容。
摘要由CSDN通过智能技术生成

1、QDateTimeEdit-----调节日期时间的控件,日期包括年月日、时间包括时分秒;可以分开编辑也可以整体编辑。

最小是1752年9月14日;最大是9999年。

构造函数:默认情况下有日期范围。

 2、QDateTime----QDate----QTime简单使用:

 

 日期时间对象的构造:

    def setup_ui(self):
        # dt = QDateTime(2018, 12, 12, 12, 30)
        # print(dt)
        # QDateTimeEdit(dt, self)
        # 获取当前的日期时间
        dt = QDateTime.currentDateTime()
        QDateTimeEdit(dt, self)

单独调整日期时间(加年月日等)、计算时间差:距离世界标准时间的偏差offsetFromUtc()。

计算两个日期对象所差的天数:

 QDate:可以获取当前的日期、年月日等(第几日、几年)。

 QTime:

 计时功能:

from PyQt5.Qt import *

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("日期时间的学习")
        self.resize(500, 500)
        self.setup_ui()

    def setup_ui(self):
        # dt = QDateTime(2018, 12, 12, 12, 30)
        # print(dt)
        # QDateTimeEdit(dt, self)
        # 获取当前的日期时间
        dt = QDateTime.currentDateTime()
        # 与世界时间间隔8小时
        print(dt.offsetFromUtc() // 3600)
        # 并未改变对象本身,而是新生成了一个对象
        dt = dt.addYears(2)
        QDateTimeEdit(dt, self)
        time = QTime.currentTime()
        time.start()

        # 获取从开始计时时刻到现在所经历的时间
        btn = QPushButton(self)
        btn.setText("测试")
        btn.move(200, 200)
        # 时间调整为s
        btn.clicked.connect(lambda: print(time.elapsed() / 1000))

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    window = Window()
    window.resize(500, 500)
    window.show()

    sys.exit(app.exec_())

 3、QDataTimeEdit----- 构造函数:可以在参数中添加额外参数.

    def setup_ui(self):
        # 年月日,当前时间
        #dte = QDateTimeEdit(QDate.currentDate(), self)
        # 只想展示当前时间
        #dte = QDateTimeEdit(QTime.currentTime(), self)
        # # 只想展示当前日期
        dte = QDateTimeEdit(QDate.currentTime(), self)

        dte.move(100, 100)

section有固定的时间段,有的只展示时分秒、有的只展示年月日(每个元素是一个独立的section)。(构造函数传递不同的参数,所包含的section也是不同的)

4、QDataTimeEdit-----显示格式

 通过不同的字符表示不同的section,

 

    def setup_ui(self):
       
        dte = QDateTimeEdit(QDate.currentDate(), self)
        dte.move(100, 100)
        # 设置格式,分、秒、毫秒
        dte.setDisplayFormat("yy-MM-dd & m: ss: zzz")
        print(dte.displayFormat())

 5、section操作:

 细节:控件失去焦点之后在获取焦点会重置section对应的索引。

    def setup_ui(self):
        # # 只想展示当前日期
        dte = QDateTimeEdit(QDate.currentDate(), self)
        dte.move(100, 100)
        # 设置格式,分、秒、毫秒
        dte.setDisplayFormat("yy-MM-dd & m: ss: zzz")
        print(dte.displayFormat())
        # 获取当前section的总个数
        print(dte.sectionCount())

        test_btn = QPushButton(self)
        test_btn.setText("测试按钮")
        test_btn.move(150, 150)
        # 当前section的索引
        #test_btn.clicked.connect(lambda: print(dte.currentSectionIndex()))
        # 设置当前索引为3
        #test_btn.clicked.connect(lambda: print(dte.setCurrentSectionIndex(3)))
        def test():
            print("xxx")
            dte.setFocus()
            #dte.setCurrentSectionIndex(3)
            # 指定枚举值获取索引,容错率更高一点
            dte.setCurrentSection(QDateTimeEdit.DaySection)
            # 或置指定部分对应的文本
            print(dte.sectionText(QDateTimeEdit.DaySection))
            # 不能在获取焦点,它会将原来的效果重置,恢复到原来的初始位置
        test_btn.clicked.connect(test)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。七十二。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值