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

简介: 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.掌握日期格式化的几种方法。


本节教程源代码:

import sys
from PyQt5.QtWidgets import QApplication,QWidget,QCalendarWidget,QLabel,QVBoxLayout
from PyQt5.QtGui import QFont
from 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_()
相关文章
|
4天前
|
数据库 Python
Python 应用
Python 应用。
23 4
|
13天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
57 6
|
14天前
|
数据采集 数据安全/隐私保护 开发者
非阻塞 I/O:异步编程提升 Python 应用速度
非阻塞 I/O:异步编程提升 Python 应用速度
|
4天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
6天前
|
机器学习/深度学习 JSON API
Python编程实战:构建一个简单的天气预报应用
Python编程实战:构建一个简单的天气预报应用
15 1
|
14天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
55 7
|
14天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
39 4
|
1天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
1天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####