举例QTimer计时器的信号与槽
时间: 2024-03-30 11:30:25 浏览: 70
QTimer是Qt框架中的一个计时器类,用于定时触发事件。它可以通过信号与槽机制来实现与其他对象的交互。
QTimer类提供了两个与信号相关的函数:timeout()和timeout(QPrivateSignal)。timeout()是一个重载函数,可以连接到槽函数,当计时器超时时触发。timeout(QPrivateSignal)是一个私有信号,用于内部实现。
下面是一个使用QTimer的示例:
```cpp
#include <QApplication>
#include <QTimer>
#include <QDebug>
class MyObject : public QObject
{
Q_OBJECT
public slots:
void handleTimeout()
{
qDebug() << "Timeout!";
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTimer timer;
MyObject obj;
QObject::connect(&timer, &QTimer::timeout, &obj, &MyObject::handleTimeout);
timer.start(1000); // 每隔1秒触发一次timeout信号
return app.exec();
}
```
在上面的示例中,我们创建了一个QTimer对象和一个自定义的MyObject对象。通过QObject::connect()函数将timer的timeout()信号连接到obj的handleTimeout()槽函数。当计时器超时时,handleTimeout()函数会被调用,并输出"Timeout!"。
阅读全文