Formular aktualisieren
Formular aktualisieren
Hallo,
Ich habe mit QT ein Programm geschrieben, welches folgendermaßen ablaufen sollte:
- Startbildschirm anzeigen
- Sobald von einem anderen Modul ein gewisses Signal gesendet wird:
- Labelinhalte auf "" setzen und Formular und 1 Grafik anzeigen
- Label1 anzeigen -> entsprechende Audiodatei abspielen
- danach Label2 anzeigen -> entsprechende Audiodatei abspielen
- dasselbe mit Label3 und Label 4
- Verarbeitung von Benutzereingaben
Das sollte in etwa so funktionieren wie bei einer PowerpointPräsentation.
Allerdings habe ich das Problem, dass zuerst die Sounds abgespielt werden und erst danach der Bildschirm gezeichnet und somit alle Texte gleichzeitig erscheinen und während der Audiowiedergabe nur ein unvollständiges Formular angezeigt wird.
Wie kann ich dieses Problem lösen?
Ich habe mit QT ein Programm geschrieben, welches folgendermaßen ablaufen sollte:
- Startbildschirm anzeigen
- Sobald von einem anderen Modul ein gewisses Signal gesendet wird:
- Labelinhalte auf "" setzen und Formular und 1 Grafik anzeigen
- Label1 anzeigen -> entsprechende Audiodatei abspielen
- danach Label2 anzeigen -> entsprechende Audiodatei abspielen
- dasselbe mit Label3 und Label 4
- Verarbeitung von Benutzereingaben
Das sollte in etwa so funktionieren wie bei einer PowerpointPräsentation.
Allerdings habe ich das Problem, dass zuerst die Sounds abgespielt werden und erst danach der Bildschirm gezeichnet und somit alle Texte gleichzeitig erscheinen und während der Audiowiedergabe nur ein unvollständiges Formular angezeigt wird.
Wie kann ich dieses Problem lösen?
Leider ist das eines meiner ersten QT-Programme und ich muss mich erst von Java her umgewöhnen. Könntest du mir erklären wo im Prinzip das Problem liegt oder wie es richtig zu lösen wäre, weil ich das Eventkonzept von QT noch nicht richtig durchblicke.
Timer habe ich keine verwendet, weil ich einfach hoffte, dass die Funktion statisch der Reihe nach abgearbeitet wird: also Anzeige -> Wiedergabe -> Anzeige ->Wiedergabe ...
Einen Timer einzubauen dürfte nicht das Problem sein, aber ich verstehe nicht wie QT den Bildschirmbau behandelt. Wenn ich die Text-Property eines Labels erstellen, wird dann nicht indirekt das Formular angewiesen die Änderung auch sichtbar zu machen?
*confused*
Timer habe ich keine verwendet, weil ich einfach hoffte, dass die Funktion statisch der Reihe nach abgearbeitet wird: also Anzeige -> Wiedergabe -> Anzeige ->Wiedergabe ...
Einen Timer einzubauen dürfte nicht das Problem sein, aber ich verstehe nicht wie QT den Bildschirmbau behandelt. Wenn ich die Text-Property eines Labels erstellen, wird dann nicht indirekt das Formular angewiesen die Änderung auch sichtbar zu machen?
*confused*
QApplication ist eine Singleton-Objekt mit globalem Zugriff. Da kannste entweder über den globalen Objektzeiger qApp drauf zugreifen, oder Du holst Dir einen Pointer über die statische Methode instance() von QCoreApplication.
also entweder
also entweder
Code: Alles auswählen
qApp->bla();
//oder
QApplication *theApp = QCoreApplication::instance();
theApp->bla();