QDateEdit Class
QDateEdit类提供了一个小部件,基于QDateTimeEdit的小部件用来编辑日期。
Header | #include < QDateEdit> |
---|---|
qmake | QT += widgets |
Inherits | QDateTimeEdit |
Inherited By |
详细说明
QDateEdit提供的许多属性和函数都是在QDateTimeEdit中实现的。这些是此类的相关属性:
- date 保存小部件显示的日期
- minimumDate定义用户可以设置的最小(最早)日期
- maximumDate定义用户可以设置的最大(最新)日期
- displayFormat包含一个字符串,用于格式化小部件中显示的日期
公共函数
- QDateEdit(const QDate &date, QWidget *parent = nullptr)
- QDateEdit(QWidget *parent = nullptr)
- virtual ~QDateEdit()
案例
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
app.setApplicationName ("QDateEdit");
QWidget w;
w.resize (300,50);
QFrame frame1;
QFrame frame2;
QFrame frame3;
QGridLayout mainLayout(&w);
QDateTimeEdit widget1;
QDateEdit widget2;
QTimeEdit widget3;
widget1.setDateTime (QDateTime(QDate(2010,10,1),QTime(12,45,56)));
widget2.setDateTime (QDateTime(QDate(2010,10,1),QTime(12,45,56)));
widget3.setDateTime (QDateTime(QDate(2010,10,1),QTime(12,45,56)));
widget1.setDisplayFormat("yyyy-MM-dd HH:mm:ss:zzz");
widget2.setDisplayFormat("yyyy-MM-dd HH:mm:ss:zzz");
widget3.setDisplayFormat("yyyy-MM-dd HH:mm:ss:zzz");
QLabel label1("QDateTimeEdit");
QLabel label2("QDateEdit");
QLabel label3("QTimeEdit");
label1.setAlignment (Qt::AlignCenter);
label2.setAlignment (Qt::AlignCenter);
label3.setAlignment (Qt::AlignCenter);
frame1.setFrameShape (QFrame::Panel);
frame2.setFrameShape (QFrame::Panel);
frame3.setFrameShape (QFrame::Panel);
QVBoxLayout *V1 = new QVBoxLayout(&frame1);
QVBoxLayout *V2 = new QVBoxLayout(&frame2);
QVBoxLayout *V3 = new QVBoxLayout(&frame3);
V1->addWidget (&label1);
V1->addWidget (&widget1);
V2->addWidget (&label2);
V2->addWidget (&widget2);
V3->addWidget (&label3);
V3->addWidget (&widget3);
// 布局加入,此时部件的父类是mainLayout
mainLayout.addWidget (&frame1,0,1);
mainLayout.addWidget (&frame2,0,2);
mainLayout.addWidget (&frame3,0,3);
w.show ();
app.exec();
return 0;
}
总结
QDateEdit 中使用Tab按键时,只会在Date部分跳转,另外 Time部分为0,且不能够更改,所以使用QDateEdit控件时,选择合适的 格式字符串。