QTimer::singleShot()
时间: 2024-01-30 15:11:27 浏览: 35
QTimer::singleShot()是Qt定时器类QTimer的一个静态函数,用于在指定的时间间隔后执行一次特定的槽函数或者Lambda表达式。它的语法如下:
```cpp
void QTimer::singleShot(int msec, const QObject *receiver, const char *member)
```
其中,msec表示延迟的毫秒数,receiver表示接收信号的对象,member表示槽函数的名称。
下面是一个使用QTimer::singleShot()的示例:
```cpp
#include <QApplication>
#include <QTimer>
#include <QDebug>
class MyObject : public QObject
{
Q_OBJECT
public slots:
void mySlot()
{
qDebug() << "Timeout!";
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyObject obj;
QTimer::singleShot(2000, &obj, SLOT(mySlot()));
return a.exec();
}
```
在上面的示例中,我们创建了一个名为MyObject的自定义类,其中包含一个名为mySlot()的槽函数。在main函数中,我们使用QTimer::singleShot()函数设置一个2秒的定时器,当定时器超时时,会调用mySlot()函数并输出"Timeout!"。