gpt4 book ai didi

c++ - 如何使用 QT 每 15 秒调用一次函数

转载 作者:IT老高 更新时间:2023-10-28 22:25:26 27 4
gpt4 key购买 nike

我知道我的问题类似于 QUESTION但我无法从那里找到解决方案。谁能简要回答我的问题?

我有这样的功能

void myWidget::showGPS()
{

/* This function will read data from text file
that will continuouly change over time
then process its data */

}

我想每 15-20 秒调用一次此函数,而不使用将 boolean 设置为 true 的 Quick-and-dirty 方法。

有没有什么方法可以使用QT 信号和带有计时器或类似功能的插槽

最佳答案

showGPS()方法,应该是MyWidget类的一个槽。然后,它只是使用 QTimer 类的问题。

 QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), myWidget, SLOT(showGPS()));
timer->start(15000); //time specified in ms

以上代码将每 15 秒调用一次 showGPS()。由于调用是周期性的,因此您不必使用 setSingleShot() 方法将计时器设置为单次模式。

编辑:

这是一个简单的 poc,帮助你理解它..

#include <QApplication>
#include <QtGui>
#include <qobject.h>

class MyWidget : public QWidget
{
Q_OBJECT

public:
MyWidget()
{
timer = new QTimer(this);
QObject::connect(timer, SIGNAL(timeout()), this, SLOT(showGPS()));
timer->start(1000); //time specified in ms
}

public slots:
void showGPS()
{
qDebug()<<Q_FUNC_INFO;
}

private:
QTimer *timer;
};


int main(int argc, char **args)
{
QApplication app(argc,args);
MyWidget myWidget;


return app.exec();
}

关于c++ - 如何使用 QT 每 15 秒调用一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19287550/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com