QCalendarWidget类提供了以月为单位地日历部件。该部件允许用户以一种简单而直接的方式选择日期。

#!/usr/bin/python
# -*- coding: utf-8 -*- import sys
from PyQt4 import QtGui, QtCore class Calendar(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Calendar')
self.cal = QtGui.QCalendarWidget(self)
self.cal.setGridVisible(True)
self.connect(self.cal, QtCore.SIGNAL('selectionChanged()'), self.showDate)
self.label = QtGui.QLabel(self)
date = self.cal.selectedDate()
self.label.setText(str(date.toPyDate()))
vbox = QtGui.QVBoxLayout()
vbox.addWidget(self.cal)
vbox.addWidget(self.label)
self.setLayout(vbox)
def showDate(self):
date = self.cal.selectedDate()
self.label.setText(str(date.toPyDate())) app = QtGui.QApplication(sys.argv)
cal = Calendar()
cal.show()
sys.exit(app.exec_())

效果:

该示例窗口拥有一个日历部件和一个标签部件。当前被选中的日期被显示在标签部件中。

使用self.cal = QtGui.QCalendarWidget(self)语句创建一个日历对象。

self.connect(self.cal, QtCore.SIGNAL('selectionChanged()'), self.showDate)

该语句将日历对象的selectionChanged()信号和自定义的showDate()方法相连接。这样在我们选定一个日期后,日历对象的selectionChanged()消息就会被触发,而与之相连的showDate()方法就会被调用。

def showDate(self):
        date = self.cal.selectedDate()
        self.label.setText(str(date.toPyDate()))

在showDate方法中,我们使用selectedDate方法获取被选择的日期。然后将其转换为字符串并显示在标签部件中。

PyQt4日历部件QXalendarWidget的更多相关文章

  1. PyQt4 的部件 -- CheckBox 单选框

    单选框具有两种状态:被选中或未被选中. 当用户选择或者取消选择时,单选框就会发射一个stateChanged()信号 # QCheckBox 单选框 # 本例创建一个用来改变窗口标题的单选框 impo ...

  2. Android开源项目发现---Spinner选择器与日历选择器篇(持续更新)

    1. android-times-square Android日历部件 支持选取单个日期,多个日期,及日期区间段和对话框形式显示 项目地址:https://github.com/square/andr ...

  3. 第15.32节 PyQt(Python+Qt)入门学习:containers容器类部件QToolBox工具箱介绍及使用案例

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  4. GitHub 优秀的 Android 开源项目(转)

    今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...

  5. GitHub 优秀的 Android 开源项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  6. 那些年不错的Android开源项目

    那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...

  7. github上有android开源项目

    下面是一些比较好的开源项目,总共分为5大类,也许对某一些人有用,有些项目也许将来某一天对自己也有用,所以整理到此,希望对大家有帮助.首先声明非原创,这篇blog的目的是分享给那些可能需要的人. htt ...

  8. Android开源项目第一篇——个性化控件(View)篇

    本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...

  9. 转--2014年最新810多套android源码2.46GB免费一次性打包下载

    转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...

随机推荐

  1. 简单5步,释放Mac磁盘空间

    收藏一下,以备后用 http://ourmacs.com/mactech/340

  2. Curved UI - VR Ready Solution To Bend Warp Your Canvas 1.7,1.8,2.2,2.3 四种版本压缩包(Unity UGUI曲面插件),可以兼容VRTK

    Curved UI - VR Ready Solution To Bend Warp Your Canvas 1.7,1.8,2.2,2.3 四种版本压缩包(Unity UGUI曲面插件) 可以兼容V ...

  3. 3D跑马灯效果

    睡了13个小时,发烧终于退了,持续2周的感冒看起来终于好了点,这一周一直在看perspective的一些资料,写一个3D跑马灯的效果. 个人感觉主要就是理解视角的概念,也就是perspective和p ...

  4. kubernetes namespace

    namespace 通常用来划分项目 默认kubectl命令 操作的namespace是default kube-system是k8s的系统组件namespaces 切换namespaces: 查看配 ...

  5. TCPdump抓包命令详解

    http://starsliao.blog.163.com/blog/static/89048201062333032563/ TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组 ...

  6. iOS边练边学--通讯录练习之Segue使用,控制器的数据传递

    一.什么是segue Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue) 二.Segue的属性 每一个segue对象,都有三个属性 < ...

  7. 在传统以太网中,为什么要有最小帧长度(64 bytes)和最大帧长度(1500 bytes)的限制?

    遇到的问题:以太网的数据帧封装如下图所示,包含在IP数据报中的数据部分最长应该是( )字节? A.1434 B.1460 C.1480 D.1500 答案:C 原因: 以太网(IEEE 802.3)帧 ...

  8. Timsort 算法

    转载自:http://blog.csdn.net/yangzhongblog/article/details/8184707 Timsort是结合了合并排序(merge sort)和插入排序(inse ...

  9. Cracking the coding interview--Q2.5

    题目 原文: Given a circular linked list, implement an algorithm which returns node at the beginning of t ...

  10. ERROR 1290

    Mysql创建用户时.出现如下错误! mysql> create user 'testuse'@'localhost' identified by '111111'; ERROR 1290 (H ...