基本Widgets(15):【类】QDateEdit [官翻]

QDateEdit Class

QDateEdit类提供了一个小部件,基于QDateTimeEdit的小部件用来编辑日期。

Header#include < QDateEdit>
qmakeQT += widgets
InheritsQDateTimeEdit
Inherited By

详细说明

img

QDateEdit提供的许多属性和函数都是在QDateTimeEdit中实现的。这些是此类的相关属性:

  • date 保存小部件显示的日期
  • minimumDate定义用户可以设置的最小(最早)日期
  • maximumDate定义用户可以设置的最大(最新)日期
  • displayFormat包含一个字符串,用于格式化小部件中显示的日期

公共函数

  1. QDateEdit(const QDate &date, QWidget *parent = nullptr)
  2. QDateEdit(QWidget *parent = nullptr)
  3. 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控件时,选择合适的 格式字符串。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页