在 Qt 中,如果你想要在 200 毫秒后执行一个函数,你可以使用 QTimer
。QTimer
提供了一个简单的方式来在指定的时间间隔后执行一个槽函数。以下是一个简单的例子,展示了如何使用 QTimer
在 200 毫秒后执行一个函数:
#include <QTimer>
#include <QObject>
#include <QDebug>
class MyClass : public QObject {
Q_OBJECT
public:
MyClass() {
QTimer *timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &MyClass::myFunction);
timer->start(200); // 设置定时器在 200 毫秒后触发
}
public slots:
void myFunction() {
qDebug() << "函数在 200 毫秒后被执行";
}
};
int main() {
// ... 初始化 Qt 应用程序和其他必要的设置 ...
MyClass myObject;
// ... 事件循环和其他代码 ...
}
#include "main.moc"
在这个例子中,MyClass
创建了一个 QTimer
对象,并将其 timeout
信号连接到 myFunction
槽。当定时器达到 200 毫秒时,它会发出 timeout
信号,从而触发 myFunction
的执行。
请注意,为了简化示例,我省略了 Qt 应用程序的初始化和事件循环的设置。在实际应用中,你需要确保 Qt 应用程序被正确初始化,并且有一个运行的事件循环,以便定时器可以正常工作。
另外,如果你只想执行一次函数,而不是每隔 200 毫秒执行一次,你可以在 myFunction
中停止定时器,或者使用 QTimer::singleShot
静态方法来在指定时间后执行一次槽函数,而无需显式地创建和管理 QTimer
对象。例如:
QTimer::singleShot(200, [&](){
qDebug() << "函数在 200 毫秒后被执行";
});