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. 利用AbstractRoutingDataSource实现动态数据源切换

    需求:系统中要实现切换数据库(业务数据库和his数据库) 网上很多资料上有提到AbstractRoutingDataSource,大致是这么说的 在Spring 2.0.1中引入了AbstractRo ...

  2. git中文乱码解决方案

    解决方案: 在bash提示符下输入: git config --global core.quotepath false core.quotepath设为false的话,就不会对0x80以上的字符进行q ...

  3. springboot集成AOP管理日志

    如何将所有的通过url的请求参数以及返回结果都输出到日志中? 如果在controller的类中每个方法名都写一个log输出肯定是不明智的选择. 使用spring的AOP功能即可完成. 1. 在pom. ...

  4. 最大似然估计 (MLE)与 最大后验概率(MAP)在机器学习中的应用

    最大似然估计 MLE 给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即“模型已定,参数未知”. 例如,对于线性回归,我们假定样本是服从正态分布,但是不知道 ...

  5. [Eclipse] 项目编码

    一.修改eclipse的新建项目的编码 在菜单栏的 Window->Preferences->General->Workspace->Text file encoding 将其 ...

  6. array、isset、三元运算符、find()

    array('name','getName',3,'callback'), // 对name字段在新增和编辑的时候回调getName方法 if(isset($_GET['id'])) { // 根据i ...

  7. selenium测试(Java)--学习总结

  8. 【转】MFC 无边框窗口的拖动

    MFC中无边框窗口的拖动 void CXXXXDialog::OnLButtonDown(UINT nFlags, CPoint point) { PostMessage(WM_NCLBUTTONDO ...

  9. linux cpio

    在使用bootimg tools压缩和打包android的ramdisk时,用到了cpio命令.所以了解一下用法. 参考 http://man.linuxde.net/cpio http://cn.l ...

  10. 转)x264重要结构体详细说明(2): x264_image_t、x264_picture_t、x264_nal_t

    转自:http://nkwavelet.blog.163.com/blog/static/2277560382013102923912753/ /*************************** ...