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

本文介绍了QDateEdit控件的基本用法,包括其继承关系、关键属性与公共函数,并通过一个实例展示了如何设置日期与格式化显示。适用于Qt初学者及需要了解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控件时,选择合适的 格式字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值