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

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)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

。七十二。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值