要将定时器设置为只调用一次,而不是重复调用,可以使用 singleShot
方法。以下是修改后的代码示例:
CDiskCapacityManage::CDiskCapacityManage(QWidget *parent)
: QThread(parent)
{
qDebug() << u8"磁盘监控线程构造函数所在线程ID号为:" << QThread::currentThreadId();
connect(this, &CDiskCapacityManage::btnOkClicked, this, &CDiskCapacityManage::showMessage, Qt::DirectConnection);
connect(qApp, &QApplication::aboutToQuit, [this]() {
isAppQuit = true;
});
QTimer::singleShot(15000, this, &CDiskCapacityManage::slotDistStatus);
qDebug() << u8"磁盘监控定时器已经启动!";
}
通过 QTimer::singleShot
方法,将定时器设置为只在延迟时间到达后触发一次,并连接到槽函数 slotDistStatus
。在这个例子中,延迟时间设定为 15000 毫秒(15 秒)。
内容由零声教学AI助手提供,问题来源于学员提问