Seite 1 von 1

keine Ahnung von QTimer

Verfasst: 4. März 2011 18:49
von timi19
Hallo @ all

ich habe gerade angefangen Snake zu programmieren und für das brauch ich ja einen QTimer, so dass eben jede Sekunde meine Methode aufgerufen wird.Quasi ein Intervall.

Ich habe den QTimer noch nie benutzt, darum weiss ich nicht wie der funktioniert. Auch verstehe ich die QT Referenz nicht ganz, was sie mir über den Timer erzählt.

Ich hoffe ihr könntet mir das erkläre:)

mfg timi19

Re: keine Ahnung von QTimer

Verfasst: 4. März 2011 18:53
von solarix
timi19 hat geschrieben: Ich habe den QTimer noch nie benutzt, darum weiss ich nicht wie der funktioniert. Auch verstehe ich die QT Referenz nicht ganz, was sie mir über den Timer erzählt.
Eigentlich ist es doch in der Doku ziemlich gut erklärt:
http://doc.qt.nokia.com/latest/qtimer.html#details

Was genau ist denn unklar? Was hast du denn schon versucht?

Re: keine Ahnung von QTimer

Verfasst: 4. März 2011 19:01
von timi19
solarix hat geschrieben:
timi19 hat geschrieben: Ich habe den QTimer noch nie benutzt, darum weiss ich nicht wie der funktioniert. Auch verstehe ich die QT Referenz nicht ganz, was sie mir über den Timer erzählt.
Eigentlich ist es doch in der Doku ziemlich gut erklärt:
http://doc.qt.nokia.com/latest/qtimer.html#details

Was genau ist denn unklar? Was hast du denn schon versucht?
Achso:idea:...In der Qt Hilfe ist der Timer viel schlechter erklärt^^
Aufjedenfall versteh ich das Signal Prinzip nicht ganz.
Wo füge ich jetzt meine Methode bzw. Code rein, die dann jedesmal ausgeführt werden soll wenn der Timer abläuft.

Code: Alles auswählen

QTimer *timer = new QTimer(this);
     connect(timer, SIGNAL(timeout()), this, SLOT(update()));
     timer->start(1000);

Verfasst: 4. März 2011 19:14
von Christian81
Wie wäre es wenn man erstmal bei den Grundlagen von Qt anfägnt anstatt gleich irgendwas riesiges zu programmmieren??
http://doc.qt.nokia.com/4.7/signalsandslots.html bzw. die ganzen Tutorials wären ein Anfang. Alles andere macht imo noch keinen Sinn.

Verfasst: 4. März 2011 19:16
von solarix
Aha.. mich beschleicht das Gefühl, dass nicht der QTimer das Problem ist, sondern der Signal/Slot Mechanismus.. kann das sein? :wink:

In diesem Fall empfehle ich mal, dass du dir das
http://de.wikipedia.org/wiki/Signal-Slot-Konzept
gut durchliest..

Etwas ausführlicher (dafür ohne vollständiges Beispiel) ist die Qt-Doku: http://doc.qt.nokia.com/4.7/signalsandslots.html

recht gut finde ich auch das Tutorial von Qt4.4:
http://doc.qt.nokia.com/4.4/tutorials-tutorial.html
Da wird das auch sehr gut erklärt..

Bei konkreten Fragen helfen wir dann gerne weiter!

hth..

Re: keine Ahnung von QTimer

Verfasst: 4. März 2011 19:20
von franzf
timi19 hat geschrieben:Wo füge ich jetzt meine Methode bzw. Code rein, die dann jedesmal ausgeführt werden soll wenn der Timer abläuft.
connect da, wo du ihn brauchst... Also: Soll das sofort losgehen, wenn du ein Objekt deiner Klasse instantiierst, bietet sich doch der Konstruktor an. Ansonsten bastel dir selber eine Funktion, die aufgerufen werden muss, um den Timer zu starten.
Immer wenn der Timer fertig ist, löst er das timeout-SIGNAL aus. Wie du darauf reagieren willst, musst du in deinem SLOT (den du im connect angibst) selber sagen. Im Code-Beispiel aus der Doku ist das "update()" (evtl. von QWidget), das kannst du aber selber nennen wie du willst.

Sollte connect() für dich was vollkommen neues sein, bietet sich ein Blick in die offiziellen Qt-Examples und das Tutorial an. Da wird eigentlich alles erklärt.

// edit:
Drei Menschen, ein Gedanke, eine nervige Katze...