update() oder repaint() nicht auslösen paintEvent()
Ich habe eine QScrollArea Zeugung my awesome scrollen widgets. Ich mag, um updates auf den Inhalt zu verschiedenen Anlässen.
Für dieses habe ich eine überschreibung der paintEvent(QPaintEvent *)
. Dann, wenn ich will es zu tun ich nenne update()
auf das widget.
Problem: paintEvent()
wird nie aufgerufen!
Was ich versucht habe bei der Fehlersuche so weit:
- Verwenden
repaint()
stattupdate()
. Sollten Sie nennen, auszuschließen. Leider nicht. - Test für
isVisible()
undupdatesEnabled
- Testen, ob mein override korrekt ist. Die Größe des Fensters ruft meine Funktion. Nur mein manuelles update(), repaint() Aufrufe schlagen fehl.
- Implementieren Sie einen QTimer auslösen, update() oder repaint() alle 500ms. Der trigger gibt den text der Ausgabe, wird die Funktion nicht aufgerufen werden.
Hat jemand eine Idee, was als Nächstes überprüft werden? Was könnte repaint() nicht nennen paintEvent()?
InformationsquelleAutor der Frage ypnos | 2010-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist die Lösung zu nennen
this->viewport()->repaint()
oderthis->viewport()->update()
von IhremQAbstractScrollArea
abgeleiteten Klasse statt nurrepaint()
oderupdate()
.Mehr info wird gegeben in Qt-Dokumentation:
Da die Inhalte, die wir in unserem
QAbstractScrollArea
abgeleitete Klasse wird in der viewport-widget, sinnvoll zu nennen-viewport-widget update oder repaint zu ziehen, unsere Daten wieder (haben unserepaintEvent
genannt).InformationsquelleAutor der Antwort Abhiram