Python 使用Qt进行开发(三)

  下面我们实现日期时间框的添加,表示日期时间的文本框可以使用QtWidgets控件下的 QDateEdit() , QTimeEdit() , QDateTime() 三个方法实现。

  1,使用QDateEdit() 我们可以得到一个只显示日期的文本框,在文本框中我们可以手动输入日期,也可以单击右侧的上、下按钮设置日期。不定义默认值的话,日期文边框的例的默认值为2000-01-01

    #创建日期文本框
    self.date = QtWidgets.QDateEdit(w)
    #调整日期文本框的位置大小
    self.date.setGeometry(QtCore.QRect(150,30,160,30))
    #设置日期显示的格式
    self.date.setDisplayFormat("yyyy-MM-dd")        

  效果图如下

  另外,我们修改显示的默认值为当前日期,添加以下代码

    now_day = time.strftime("%Y-%m-%d",time.localtime())
    self.date.setDate(QtCore.QDate.fromString(now_day, 'yyyy-MM-dd'))

  效果图如下

  我们还可以使用日历插件获取日期,只需要将日期框的 calendarPopup 属性值为True 即可,代码代码如下

    self.date.setCalendarPopup(True)

  效果图如下

 

  2,QTimeEdit() 可以创建一个时间的文本框,代码如下

    self.label1 = QtWidgets.QLabel(w)
    self.label1.setGeometry(QtCore.QRect(100, 60, 120, 45))
    self.label1.setFont(QtGui.QFont("Roman times",14))
    self.label1.setText("时间:")
    #创建一个时间框
    self.time = QtWidgets.QTimeEdit(w)
    self.time.setGeometry(QtCore.QRect(150,65,160,30))
    self.time.setDisplayFormat("hh:mm:ss")
    #获取并定义当前时间
    now_time = time.strftime("%H:%M:%S",time.localtime())
    self.time.setTime(QtCore.QTime.fromString(now_time, 'hh:mm:ss'))

  效果图如下

  3,上边的设置日期和时间是分开的,操作起来会比较繁琐,这时我们就可以使用 QDateTimeEdit() 方法了

    self.label1 = QtWidgets.QLabel(w)
    self.label1.setGeometry(QtCore.QRect(60, 60, 120, 45))
    self.label1.setFont(QtGui.QFont("Roman times",14))
    self.label1.setText("日期时间:")

    self.time = QtWidgets.QDateTimeEdit(w)
    self.time.setGeometry(QtCore.QRect(150,65,160,30))
    self.time.setDisplayFormat("yyyy-MM-dd hh:mm:ss")
    #设置使用日历控件
    self.time.setCalendarPopup(True)
    #获取并定义当前时间
    now_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    self.time.setDateTime(QtCore.QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss'))

  效果图如下

 

posted @ 2018-08-02 15:43  木楉。  阅读(4468)  评论(0编辑  收藏  举报