首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python高级进阶#018 pyqt5日历控件QCalendarWidget应用

知识回顾

1.掌握了Qcombobox下拉框,载入、配置(可编辑、不可编辑)

2.掌握联动的思想(省与市的连动),主要用到actived信号

本节知识视频教程

以下开始文字讲解:

一、案例目标

案例:日历控件的使用

1.制作一个垂直布局(盒子模型)

2.载入一个日历控件Qcalendarwidget和一个qlabel控件

3.要求在点击日历控件的日期的时候,能够将获取到的日期显示到我们的label上

效果图

二、开发思路

  • QCalendarWidget日历控件的使用

1.从库文件PyQt5.QtWidgets中导入日历控件

2.对日历控件的实例化

cal=QCalendarWidget()

这里实例化的时候没有载入父容器,我们需要在后期将其载入父容器。

  • 盒子模型

#盒子模型,垂直布局

vlo=QVBoxLayout(self) 实例化布局对象

vlo.addWidget(cal) 加入控件

  • 字体设置

1.导入字体类

from PyQt5.QtGui import QFont

2.对字体进行实例化,以及将实例化对象载入使用

lbl.setFont(QFont("华文行楷",20))

  • 日期类型的载入

从PyQt5的核心库中载入日期类Qdate

from PyQt5.QtCore import Qdate

默认的有实例的日期显示格式

PyQt5.QtCore.QDate(2019, 10, 29)

三、相关技巧

对日期进行格式化的技巧

问题是在我们的槽方法中无法对日期进行代码提示,关键的技巧就是对参数重新格式化为QDate类型就可以了。

格式化日期使用toString 方法来实现。

实现的时候,我们有两种方法:

方法一:使用y表示年的一位,M表示月,d表示日

mydate.toString("yyyy年MM月dd日")

方法二:使用系统中的已经定义好的方式

这种方式,实际上是利用系统中已有的枚举类的方法来实现的。

mydate.toString(Qt.ISODate)或者 mydate.toString(1)

四、总结强调

1.掌握日历控件QCalendarWidget的载入与配置。

2.掌握日历控件的信号控制。

3.掌握日期格式化的几种方法。

本节教程源代码:

代码语言:javascript
复制
import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QCalendarWidget,QLabel,QVBoxLayoutfrom PyQt5.QtGui import QFontfrom PyQt5.QtCore import QDate,Qt
#实现一个日历控件class MyClass(QWidget):    def __init__(self):        super(MyClass, self).__init__()        self.initUI()
    def initUI(self):        self.setWindowTitle("刘金玉编程")        self.setGeometry(300,100,400,300)
        cal=QCalendarWidget()        cal.clicked[QDate].connect(self.myCalendar)        self.lbl=QLabel("这里显示日期")        self.lbl.setFont(QFont("华文行楷",20))
        #盒子模型        vlo=QVBoxLayout(self)        vlo.addWidget(cal)        vlo.addWidget(self.lbl)
        self.show()
    def myCalendar(self,d):        mydate=QDate(d)        self.lbl.setText(mydate.toString(1))
if __name__=="__main__":    app=QApplication(sys.argv)    mc=MyClass()    app.exec_()
下一篇
举报
领券