keine Ahnung von QTimer

Alles rund um die Programmierung mit Qt
Antworten
timi19
Beiträge: 6
Registriert: 17. November 2010 17:17

keine Ahnung von QTimer

Beitrag 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
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: keine Ahnung von QTimer

Beitrag 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?
timi19
Beiträge: 6
Registriert: 17. November 2010 17:17

Re: keine Ahnung von QTimer

Beitrag 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);
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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..
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: keine Ahnung von QTimer

Beitrag 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...
Antworten