QTime:时间数据类型,仅表示时间,如15:23:13。
QDate:日期数据类型,仅表示日期,如2017-4-5。
QDateTime:日期时间数据类型,表示日期和时间,如2017-03-23 08:12:43。
QTimeEdit、QDataEdit、QDataTimeEdit
//时间显示
QTime----------时间, QDate--------------日期,
//显示当前系统时间
QString t = QTime::currentTime().toString("hh:mm:ss");
ui->lcdNumber->display(t);
qDebug()<label->setText(d);
qDebug()<
1、主要控件
QTimeEdit:编辑和显示时间的组件。
QDateEdit:编辑和显示日期的组件。
QDateTimeEdit:编辑和显示日期时间的组件。
QCalendarWidget: 一个用日历形式选择日期的组件。
2、QDateTimeEdit类
QDateEdit 和 QTimeEdit 都从 QDateTimeEdit 继承而来,实现针对日期或时间的特定显示功能。实际上,QDateEdit 和 QTimeEdit 的显示功能都可以通过 QDateTimeEdit 实现,只需设置好属性即可。
QDateTimeEdit 类的主要属性的介绍如下:
字符 | 意义 |
---|---|
d | 天,不补零显示,1-31 |
dd | 天,补零显示,01-31 |
M | 月,不补零显示,1-12 |
MM | 月,补零显示,01-12 |
yy | 年,两位显示,00-99 |
yyyy | 年,4位数字显示,如 2016 |
h | 小时,不补零,0-23 或 1-12 (如果显示 AM/PM) |
hh | 小时,补零2位显示,00-23 或 01-12 (如果显示 AM/PM) |
H | 小时,不补零,0-23 (即使显示 AM/PM) |
HH | 小时,补零显示,00-23 (即使显示 AM/PM) |
m | 分钟,不补零,0-59 |
mm | 分钟,补零显示,00-59 |
z | 毫秒,不补零,0-999 |
zzz | 毫秒,补零 3 位显示,000-999 |
AP或A | 使用 AM/PM 显示 |
ap或a | 使用 am/pm 显示 |
时间转字符串
xxx.toString()
xxx.toString(格式)
curDateTime.toString (“yyyy 年 MM 月 dd 日”);
字符串转时间
这里将字符串 str 按照格式 yyyy-MM-dd hh:mm:ss 转换为日期时间变量,格式是指字符串 str 所表示的日期时间的格式。
datetime=QDateTime::fromString(str,“yyyy-MM-dd hh:mm:ss”);
日历 QCalendarWidget
//获取日历上点中的日期
QDate dt=ui->calendarWidget->selectedDate(); QString str=dt.toString("yyyy年 M 月 d 日"); ui->editCalendar->setText(str);
参考:https://blog.csdn.net/xiaolong1126626497/article/details/119277019
//一. 秒单位时间转为字符串时、分、秒格式输出
int time_sec=100;
QString timer=QTime(0, 0, 0).addSecs(int(time_sec)).toString(QString::fromLatin1("HH:mm:ss"));
qDebug()<
在Qt的界面程序中,不能在槽函数中使用sleep函数,while死循环或者其他有长时间延时的工作。因为QT的UI线程是用来刷新界面(轮询事件),如果有一个延时工作,那么就会导致UI线程卡死。
#include
执行周期任务
QTimer *myT;
//创建定时器
myT = new QTimer;
//开始定时器
myT->start(1000);
//关联计时结束的槽函数
connect(myT, &QTimer::timeout, this, &MainWindow::change_value);
//停止定时器
myT->stop();
2.2 执行一次性工作
QTimer::singleShot(5000, this, SLOT(show_test()));
随机数
int num1 = qrand();
//设置随机数因子
qsrand(111);
int num2 = qrand();
//把时间作为随机数因子
qsrand(QDateTime::currentMSecsSinceEpoch());
qDebug()<