本文主要是介绍Roson讲Qt #9 QDateTimeEdit(日期时间编辑),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.什么是QDateTimeEdit
QDateTimeEdit类提供了一个用于编辑日期和时间的小部件。
QDateTimeEdit允许用户使用键盘或方向键来编辑日期和时间值,以增加和减少日期和时间值。箭头键可用于在QDateTimeEdit框中从一个区域移动到另一个区域。日期和时间按照格式设置,需使用setDisplayFormat()。
QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate());dateEdit->setMinimumDate(QDate::currentDate().addDays(-365));dateEdit->setMaximumDate(QDate::currentDate().addDays(365));dateEdit->setDisplayFormat("yyyy.MM.dd");
在这里,我们创建了一个新的QDateTimeEdit对象,初始化为今天的日期,并将有效日期范围限制为今天±365天。我们已经设定了月,日,年的顺序。
QDateTimeEdit的最小值是1752年9月14日。您可以通过调用setMinimumDate()来更改这一点,考虑到QDate的最小值是4713BC 2 January。
其他有用的函数还有setMaximumDate()、setMinimumTime()和setMaximumTime()。
2.QDateTimeEdit使用
2.1 设置最大日期和最小日期
2.1.1 方法1
ui.dateTimeEdit->setMinimumDate(QDate::currentDate().addDays(-365));ui.dateTimeEdit->setMaximumDate(QDate::currentDate().addDays(366));
这种写法不太好理解, 下面解释一下:
QDate::currentDate()表示当前日期,我写这篇博客的日期是2021.8.22,QDate::currentDate().addDays(-365)的意思是在当前日期上往前推365天,也就是上图中显示的2020.8.22,这个控件默认显示的初始日期就是最小日期。上图中这个日期已经无法减小了,点右边的向下箭头已经无法改小日期,只能增大。
2.1.2 方法2
ui.dateTimeEdit->setMinimumDate(QDate(2021,05,20));ui.dateTimeEdit->setMaximumDate(QDate(2021,12,20));ui.dateTimeEdit->setDisplayFormat("yyyy.MM.dd");
这种用法就比较直观,程序设置的多大就是多大。
2.2 指定日历编辑器
//设置calendarPopup属性为true-必须要这一行,而且要放在前面ui.dateTimeEdit->setCalendarPopup(true);//指定一个部件来作为弹出的日历编辑器,可以是QCalendarWidget或者QCalendarWidget的子类ui.dateTimeEdit->setCalendarWidget(new QCalendarWidget());
2.3 设置日期和时间的格式
可以用如下表达式来表示日期:
可以用如下表达式来表示时间:
更详细的资料需要查阅QDateTime。
下面给出几个示例:
ui.dateTimeEdit->setDisplayFormat("yyyy.MM.dd HH:MM:ss");
ui.dateTimeEdit->setDisplayFormat("yyyy/MM/dd HH:MM:ss");
这篇关于Roson讲Qt #9 QDateTimeEdit(日期时间编辑)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!