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设计】。

相关文章

Python+Django搭建自己的blog网站

Python+Django搭建自己的blog网站

一、前言 1.1.环境 python版本:3.6 Django版本:1.11.6 1.2.预览效果 最终搭建的blog的样子,基本上满足需求了。框架搭好了,至于CSS,可以根据自己喜好随...

Python获取CPU、内存使用率以及网络使用状态代码

由于psutil已更新到3.0.1版本,最新的代码如下: #!/usr/bin/env python import os import time import sys import...

在python3.5中使用OpenCV的实例讲解

在python3.5中使用OpenCV的实例讲解

最近在OpenCV的官方文档上看到一个人脸识别的示例代码,想要实现。由于我之前下好的OpenCV3.1中并不自带相关的函数,即opencv2/contrib/contrib.hpp这个文...

Python3 使用pillow库生成随机验证码

Python3 使用pillow库生成随机验证码的代码如下所示: import random # pillow 包的使用 from PIL import Image,ImageDra...

Python3.5以上版本lxml导入etree报错的解决方案

Python3.5以上版本lxml导入etree报错的解决方案

在python中安装了lxml-4.2.1,在使用时发现导入etree时IDE中报错Unresolved reference 其实发现,不影响使用,可以正常运行,对于我这种要刨根问底的...