Ich muss eine einfache GUI erstellen, die Bilder anzeigt, die Bilder in diesem Beispiel können sich ändern und die GUI muss ihren Inhalt aktualisieren.Aktualisierung von Qt Images funktioniert erst, wenn exec aufgerufen wird
Ich schrieb die folgende Update-Funktion in meiner Widget-Klasse:
void myClass::updatePic() {
QPixmap pix("./pic.png");
int width = ui->picLabel->width();
int height = ui->picLabel->height();
ui->picLabel->setPixmap(pix.scaled(width,height,Qt::KeepAspectRatio));}
Ich versuche es auf folgende Weise zu verwenden:
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
myClass w;
w.show();
sleep(3);
w.updatePic();
sleep(3);
w.updatePic();
sleep(3);
return a.exec();}
Aber das Fenster öffnet gerade und zeigt nicht die Bilder bis wir zur a.exec()
Zeile gelangen und dann das letzte Bild öffnet. Was mache ich falsch?
EDIT:
Klärung der Auslöser für die Bilder ändert von einem externen Programm kommt (genauer gesagt, wird die GUI ein Knoten in ros, und wird von einem anderen Knoten ausgelöst werden). Gibt es eine Möglichkeit, einen Knopf nicht über ein externes Programm von der GUI zu drücken? Der Timer wird funktionieren, aber ich mag diese "busy wait" -Stil-Lösungen nicht.
Danke für die Vorschläge bisher
Der Auslöser stammt von einem externen Programm, die QT-GUI zeigt nur die Ergebnisse an und hat keine Schaltflächen. – user44874