QT

2013-10-10 20 views
11

kullanarak her 15 saniyede bir işlev nasıl çağrılır Sorunun buna benzer QUESTION olduğunu biliyorum ama oradan çözüm bulamıyorum. Sorunuma bir cevap verebilir mi?QT

ben true boole ayarlama kirli Hızlı ve-yöntemini kullanarak olmadan bu fonksiyonu her 15-20 saniyede bir çağrı yapmak istediğiniz bu

void myWidget::showGPS() 
{ 

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

} 

gibi bir işlevi vardır.

o

+1

QTimer'i hala kullanabilirsiniz? zaman aralığını 15 saniyeye ayarla ve işlevinizi "bağlan" ile zamanlayıcı ile ilişkilendirin? (bulunduğunuz bağlantıya benzer. –

+0

Örnekler, QTimer için dokümanlardır. –

cevap

17

yöntemle showGPS() gibi zamanlayıcı falan bu kullanarak QT sinyali ve yuva uygulamak için herhangi bir yolu var mı, MyWidget sınıfın bir yuva yapılmalıdır. Ardından, sadece QTimer sınıfını kullanma meselesi.

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

Yukarıdaki kod, her 15 saniyede bir showGPS() öğesini çağırır. Arama periyodik olduğundan, zamanlayıcıyı setSingleShot() yöntemini kullanarak tek çekim modunda ayarlamanız gerekmez.

Düzenleme:

Bu basit bir poc size QFileWatcher daha iyi bir çözüm olabilir senin durumda, dosya değişiklikleri kontrol etmek için QTimer kullanabilirsiniz,

#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(); 
} 
+0

Teşekkür ederim. Sorunum, çözümünüz tarafından çözüldü. – Bavani

2

.. bunu anlamalarına yardımcı olmak.

+0

Önerileriniz için teşekkür ederiz. Kullanmaya çalışacağım. – Bavani

+0

Güncelleştirmelerin hızına bağlı olarak. Dosya, güncellemeyi sınırlamak isteyebilirsiniz.Sonra muhtemelen bir 'QTimer' içerecektir. –