QDateTimeEdit 用法总结

本文详细介绍了Qt中QDateTimeEdit组件的使用方法,包括如何创建和设置日期时间选择器,设置显示格式,限制日期范围,以及如何通过信号和槽来响应用户的更改操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:Qt之QDateTimeEdit

一般用法

设置时间

QDateTimeEdit *dateTimeEdit = new QDateTimeEdit(this);
QDateTimeEdit *dateTimeEdit2 = new QDateTimeEdit(QDateTime::currentDateTime(), this);
QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate(), this);
QDateTimeEdit *timeEdit = new QDateTimeEdit(QTime::currentTime(), this);

// 设置日期时间格式
dateTimeEdit->setDisplayFormat("yyyy-MM-dd HH:mm:ss");
dateTimeEdit2->setDisplayFormat("yyyy/MM/dd HH-mm-ss");
dateEdit->setDisplayFormat("yyyy.M.d");
timeEdit->setDisplayFormat("H:mm");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

设置范围

    dateEdit->setMinimumDate(QDate::currentDate().addDays(-365));  // -365天
    dateEdit->setMaximumDate(QDate::currentDate().addDays(365));  // +365天
  • 1
  • 2

获取时间

    QDate date = dateEdit->date();  // 日期
    QDateTime dateTime = dateEdit->dateTime();  // 日期时间
    QDate maxDate = dateEdit->maximumDate();  // 最大日期
    QDateTime maxDateTime = dateEdit->maximumDateTime();  // 最大日期时间
    QTime maxTime = dateEdit->maximumTime();  // 最大时间
    QDate minDate = dateEdit->minimumDate();  // 最小日期
    QDateTime minDateTime = dateEdit->minimumDateTime();  // 最小日期时间
    QTime minTime = dateEdit->minimumTime();  // 最小时间

// 用Section 获取各部分对应的值
QString strYear = dateEdit->sectionText(QDateTimeEdit::YearSection);
QString strMonth = dateEdit->sectionText(QDateTimeEdit::MonthSection);
QString strDay = dateEdit->sectionText(QDateTimeEdit::DaySection);
QString strHour = dateEdit->sectionText(QDateTimeEdit::HourSection);
QString strMinute = dateEdit->sectionText(QDateTimeEdit::MinuteSection);
QString strSecond = dateEdit->sectionText(QDateTimeEdit::SecondSection);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

弹出日历

// 注意:日历是对应的是QDate,而非QTime。所以QDateEdit、QDateTimeEdit可以使用,而QTimeEdit并不能使用。
dateEdit->setCalendarPopup(true);  // 日历弹出
  • 1
  • 2

信号

QDateTimeEdit *dateTimeEdit = new QDateTimeEdit(QDateTime::currentDateTime(), this);

// 连接信号槽
connect(dateTimeEdit, SIGNAL(dateChanged(QDate)), this, SLOT(onDateChanged(QDate)));
connect(dateTimeEdit, SIGNAL(dateTimeChanged(QDateTime)), this, SLOT(onDateTimeChanged(QDateTime)));
connect(dateTimeEdit, SIGNAL(timeChanged(QTime)), this, SLOT(onTimeChanged(QTime)));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

槽函数

// 日期发生改变时执行
void onDateChanged(const QDate &date) {
    qDebug() << "QDate : " << date;
}

// 无论日期还是时间发生改变,都会执行
void onDateTimeChanged(const QDateTime &dateTime) {
    qDebug() << "QDateTime : " << dateTime;
}

// 时间发生改变时执行
void onTimeChanged(const QTime &time) {
    qDebug() << "QTime : " << time;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值