Frage

Ich habe ein Projekt mit Qt und OpenGL gemacht.

In Qt paintGL () war immer wieder rufe ich glaube, so konnte ich die Werte ändern außerhalb dieser Funktion und rufen update (), so dass es ein neues Bild malen würde. Ich glaube auch, dass es initializeGL () aufgerufen, sobald Sie das Programm starten.

Nun meine Frage:

Ich mag, dass gleiche Funktionalität in einem anderen Programm. Ich brauche keine Bilder zu zeichnen, etc. Ich habe mich nur gefragt, ob es eine Möglichkeit gäbe, eine Funktion wie paintGL () zu machen, so dass die Anwendung aufgerufen werden immer wieder nie geschlossen. Ich habe gerade versucht, eine while (true) Schleife, die mein Programm läuft gehalten, aber die GUI war inaktiv, da die while-Schleife.

Irgendwelche Tipps, andere als bevorzugt Threading.

Danke.

War es hilfreich?

Lösung

Der genaue Mechanismus wird, hängt von den GUI-Toolkit Sie verwenden. Im Allgemeinen muss Ihre Anwendung die Laufschleife ständig für Veranstaltungen versandt werden. Deshalb ist die App nicht mehr reagiert, wenn Sie es in einer while Schleife ausgeführt haben.

Wenn Sie etwas neu gestrichen brauchen die einfachste Art und Weise ständig, ist ein Timer zu erstellen, wenn das Fenster erstellt wird, und dann in den Timer auch Handler oder Rückruf, können Sie Ihre Fenster ungültig machen, die ein Neuzeichnen erzwingt. Ihre Farbe Handler kann dann bei der Frequenz des Timer, wie 25-mal pro Sekunde aufgerufen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top