您的位置:首页 > 编程语言 > Qt开发

QDateTimeEdit 用法总结

2017-07-30 21:27 507 查看
参考: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");


设置范围

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


获取时间

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);


弹出日历

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


信号

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)));


槽函数

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

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

// 时间发生改变时执行
void onTimeChanged(const QTime &time) {
qDebug() << "QTime : " << time;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息