欢迎光临散文网 会员登陆 & 注册

日历与时间

2022-03-30 15:32 作者:海鸥之道  | 我要投稿

1、QCalendar

QCalendar是一个日历控件,它提供了一个基于月份的视图,允许用户通过鼠标或键盘选择日期,默认选中的是今天的日期。也可以对日历的日期范围进行规定。

QCalendar类中的常用方法如表1所示。

表1

实例演示1:QCalendar的使用

运行程序,显示效果如下图所示。

代码分析:

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

以下代码创建了QCalendarWidget组件,并设置该日历控件的最大日期和最小日期。

从窗口组件中选定一个日期,会发射一个QCore.QDate信号,下面代码将此信号连接到用户定义的showDate()槽函数。

接下来,通过调用selectedDate()方法检索选定的日期,然后将日期对象转换成为指定格式字符串,将其设置为标签控件内容。

2、QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘和上、下箭头按钮来增加或减少日期时间值。比如,当使用鼠标选中QDateTimeEdit中的年份时,可以使用键盘上的上、下键来改变数值。

QDateTimeEdit通过setDisplayFormat()函数来设置显示的日期时间格式。

QDateTimeEdit类中的常用方法如下表所示。

QDateTimeEdit类中常用的信号如下表所示。

1)QDateTimeEdit的子类

QDateEdit和QTimeEdit类均继承自QDateTimeEdit类,它们的许多特性和功能都由QDateTimeEdit类提供。QDateEdit和QTimeEdit类的继承结构如下:

设置显示格式时需要注意:QDateEdit用来编辑控件的日期,仅包括年、月、日;QTimeEdit用来编辑控件的时间,仅包括小时、分钟和秒。

不要用QDateEdit来设置或获取时间,也不要用QTimeEdit来设置或获取日期。如果要同时操作日期时间,请使用QDateTimeEdit。使用它们设置显示格式的正确方法如下;

设置弹出日历时要注意:用来弹出日历的类只有QDateTimeEdit和 QDateEdit,而 QTimeEdit类虽然在语法上可以设置弹出日历,但不起作用。使用它们弹出日历的正确方法如下:

2) 初始化QDateTimeEdit类

在默认情况下,如果QDateTimeEdit类构造时不指定日期时间,那么系统会为其设置一个和本地相同的日期时间格式,并且值为2000年1月1日0时0分0秒。也可以手动指定控件显示的日期时间。

显示效果如图所示。

除通过构造函数指定所显示的日期时间外,也可以根据 QDateTimeEdit提供的槽函数来设置,比如setDateTime()、setDate()、setTime()函数。

3)设置日期时间格式

如果不想使用系统默认的格式,则可以通过setDisplayFormat()来自定义日期时间格式。

显示效果如图。

4)设置日期时间范围

下面代码创建了QDateTimeEdit对象,并设置日期时间为今天(currentDate),同时限制有效日期的范围为:距离今天土365天。

5)弹出日历

在默认情况下,只能通过上下箭头来改变日期时间。如果要弹出日历控件,只需调用setCalendarPopup(True)即可。

显示效果如下图所示。

从图中可以看出,单击下拉箭头就会弹出日历控件。注意:由于设置了日期范围,所以不在范围内的日期是无法选择的。

6) 获取日期时间

可以通过date()、dateTime()等方法来获取日期时间对象,如果要获取年、月、日等信息,则可以调用QDate的year()、month()、day()等函数。

运行,输出结果如下:

7) 信号和槽函数

QDateTimeEdit控件常用的信号是 dateChanged . dateTimeChanged和·timeChanged,分别在改变日期、日期时间、时间时发射。

通过以下代码设置控件的信号连接槽函数。


附录: 以上所有例子源代码如下





日历与时间的评论 (共 条)

分享到微博请遵守国家法律