Ответ 1
Метод showGPS()
должен быть сделан слотом класса MyWidget
.
Затем, это просто вопрос использования класса QTimer
.
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), myWidget, SLOT(showGPS()));
timer->start(15000); //time specified in ms
Вышеуказанный код вызовет showGPS() каждые 15 секунд.
Поскольку вызов является периодическим, вам не нужно устанавливать таймер в один режим съемки с помощью метода setSingleShot()
.
Edit:
Это простой 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();
}