首页 > 解决方案 > 将当前时间和日期连接到 qt 中的 timeEdit 和 dateEdit

问题描述

在 qt 中,我想将当前时间与 timeEdit 连接起来,所以当我启动应用程序时,时间会继续。我写了这个:

    QDate myD = iDate->currentDate();
    QTime myT = iTime->currentTime();


    ui->dateEdit->setDate(myD);
    ui->timeEdit->setTime(myT);
    
    connect (dte, SIGNAL(getDate(myD)), ui->dateEdit, SLOT(setDate(myD)));

    connect(dte, &QTimeEdit::timeChanged, ui->timeEdit,&QTimeEdit::setTime);

注意: QDateTimeEdit* dte = new QDateTimeEdit;在 .h 文件中声明。当我启动应用程序时,时间仍然冻结

标签: qt

解决方案


示例代码中没有任何内容正在运行以更新时间。我认为您需要启动一个 1 秒的计时器,并且每次超时都使用当前的 QDateTime::currentDateTime 更新 QDateTimeEdit。

像这样的东西:

QTimer* updatetimer = new QTimer();
connect(updatetimer, &QTimer::timeout, this, &UiClass::UpdateTimerTimeout)
updateTimer->start(1000);

UpdateTimerTimeout {
    ui->dateEdit->setDate(QDateTime::currentDateTime().date());
    ui->timeEdit->setTime(QDateTime::currentDateTime().time());
}

像这样的东西应该做你想做的事。


推荐阅读