PyQt5每天必学之日历控件QCalendarWidget

yipeiwu_com7年前Python基础

QCalendarWidget 是日历控件。它允许用户以简单和直观的方式选择日期。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个例子使用QCalendarWidget控件创建了一个日历。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月4日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCalendarWidget, QLabel
from PyQt5.QtCore import QDate

class Example(QWidget):

 def __init__(self):
 super().__init__()

 self.initUI()

 def initUI(self):

 cal = QCalendarWidget(self)
 cal.setGridVisible(True)
 cal.move(20, 20)
 cal.clicked[QDate].connect(self.showDate)

 self.lb1 = QLabel(self)
 date = cal.selectedDate()
 self.lb1.setText(date.toString())
 self.lb1.move(130, 260)

 self.setGeometry(300, 300, 350, 300)
 self.setWindowTitle('日历控件') 
 self.show()

 def showDate(self, date):

 self.lb1.setText(date.toString())

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

这个例子有一个日历控件和一个标签控件。当前选定的日期用标签显示。

cal = QCalendarWidget(self)

使用 QCalendarWidget 创建日历控件

cal.clicked[QDate].connect(self.showDate)

如果我们在日历控件中选择一个日期,clicked[QDate]信号将连接到用户定义的showDate()方法。

def showDate(self, date):
    self.lb1.setText(date.toString())

我们通过调用selectedDate()方法检索选定的日期。然后我们将Date对象转换成字符串并显示在标签控件中。

程序执行后

这里写图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

TensorFlow数据输入的方法示例

TensorFlow数据输入的方法示例

读取数据(Reading data) TensorFlow输入数据的方式有四种: tf.data API:可以很容易的构建一个复杂的输入通道(pipeline)(首选数据输入方式...

python利用dir函数查看类中所有成员函数示例代码

python利用dir函数查看类中所有成员函数示例代码

前言 如果一个类是别人编写的,又没有帮助文档,怎么样来查看所有成员函数呢?本文详细给大家介绍了关于python用dir函数查看类中所有成员函数的相关内容,下面话不多说了,来一起看看详细的...

Python multiprocessing多进程原理与应用示例

本文实例讲述了Python multiprocessing多进程原理与应用。分享给大家供大家参考,具体如下: multiprocessing包是Python中的多进程管理包,可以利用mu...

Python搭建代理IP池实现获取IP的方法

Python搭建代理IP池实现获取IP的方法

使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个 IP 的访问速度或访问次数,超出了它的限制你的 IP 就会被封掉。对于访问速度的处理比较简单,只要间隔一段时间爬取一次就行了...

Python将多个excel表格合并为一个表格

Python将多个excel表格合并为一个表格

生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个。诸如此类的问题有很多。除了人工将所有表格的内容一个一个复制...