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. 桌面时钟代码_被遗忘的手机桌面小部件

    iOS 和 Android,两个移动时代的操作系统在历经十多年发展后,成熟度之高已经很难再找出大的短板. 如今,这两个系统相似的部分,大概比它们不相似的地方还要多得多.从早期的下拉通知栏,再到现在的侧 ...

  2. Qt窗口部件——QFrame/QAbstractButton/QLineEdit/QAbstractSpinBox/QAbstractSlider

    Qt其他窗口部件 1. QFrame 1.1 QLabel 1.2 QLCDNumber 1.3 QStackedWidget 1.4 QToolBox 2. QAbstractButton 2.1 ...

  3. python tkinter 日历

    python的tkinter包,在桌面上显示日历 从别处copy来的,谢谢 import calendar import tkinter as tk import tkinter.font as tk ...

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

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

  5. python错误找回_致命的Python错误:无法从堆栈溢出中恢复。洪水期间Fi

    我已经走到了死胡同,经过过度的(和不成功的)谷歌搜索,我需要帮助. 我正在构建一个简单的PyQt4小部件,它位于60x80个正方形的网格中,每个都初始化为None.如果用户单击该框,则会根据此列表定义 ...

  6. android 仿支付宝菜单_这个 Android 几乎放弃的设计,iOS 要用上了?

    iOS 和 Android,两个移动时代的操作系统在历经十多年发展后,成熟度之高已经很难再找出大的短板. 如今,这两个系统相似的部分,大概比它们不相似的地方还要多得多.从早期的下拉通知栏,再到现在的侧 ...

  7. Zetcode GUI 教程

    来源:ApacheCN Zetcode 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request. 请您勇敢地去翻译和改进翻译.虽然 ...

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

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

  9. 【转】高手速成android开源项目【View篇】

    主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar及其他如Dialo ...

最新文章

  1. 新一代算法模型:从搜索、推荐到广告!
  2. R语言时间序列(time series)分析实战:霍尔特指数Holt‘s平滑法预测
  3. 关于js禁止浏览器缩放
  4. ST17H26之aes模块测试程序
  5. 最新版python学习_最全Python学习路线图【2020最新版】
  6. Linux实现MYSQl数据库的定时备份
  7. Shell入门(一)之简介
  8. java技术学习内容_Java开发主要都学些什么内容?
  9. harmonyos sdk,HarmonyOS SDK对应的API版本跃迁引发的历史工程适配问题解决方案
  10. div css左边固定右边自适应布局
  11. 程序语言python的优化版_从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例...
  12. flock用法详解 linux_linux下一个C语言flock功能使用 .
  13. [导入]使用ASP.NET AJAX的注意事项
  14. 保障电邮EMAIL通讯的安全性
  15. 马万经:城市道路交通主动协同管控
  16. 【HUSTOJ】1048: 字符图形4-星号正三角
  17. 任务栏可以点,电脑桌面却不显示内容的解决方法
  18. 高速CAN收发器TJA1043的状态机
  19. 学生计算机游戏代码,给计算机学院的学幼们贴一些游戏代码
  20. 2011QQ搞笑个性签名:小弟不才,大名耶稣.小名上帝.法号如来

热门文章

  1. 年总结(七):这半年的生活(2017.1—2017.7)
  2. “跨国视频造假窝点”曝光!这个大规模数据集,帮AI揪出99%换脸视频
  3. Hinton领衔谷歌大脑新研究,拯救被认成步枪的乌龟
  4. 复杂场景下,如何用AI技术做地图?
  5. 如何用电脑快速制作gif动态图片
  6. 全面分析RHCE7(红帽认证工程师)考试题目之 ----Samba文件共享篇
  7. Hive-1.2.0学习笔记(四)Hive表管理
  8. WindowsServices_无法拷贝文件到服务器
  9. nginx rewrite 实现二级域名跳转
  10. Corosync与Pacemaker实现nfs作为共享存储的MySQL高可用