前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python高级进阶#018 pyqt5日历控件QCalendarWidget应用

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

作者头像
刘金玉编程
修改2019-11-11 10:22:06
1.3K0
修改2019-11-11 10:22:06
举报
文章被收录于专栏:编程创造城市编程创造城市

知识回顾

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_()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程创造城市 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档