Ich habe eine QScrollArea, die mein fantastisches Scroll-Widget hervorbringt. Ich mache gerne bei verschiedenen Gelegenheiten Updates zu den Inhalten.update() oder repaint() kann paintEvent() nicht auslösen
Dafür habe ich einen Override von paintEvent(QPaintEvent *)
. Dann rufe ich jedes Mal, wenn ich es möchte, das Widget update()
an.
Problem:paintEvent()
wird nie von diesem aufgerufen!
Was ich bei der Fehlerbehebung versucht, so weit:
- Verwenden
repaint()
stattupdate()
. Sollte es sofort anrufen. Leider nicht. - Test für
isVisible()
undupdatesEnabled
- Test, ob meine Überschreibung korrekt ist. Die Größenänderung des Fensters ruft meine Funktion auf. Nur meine manuellen update(), repaint() -Aufrufe scheitern.
- Implementieren Sie einen QTimer, um update() oder repaint() alle 500ms auszulösen. Der Trigger gibt Textausgabe, die Funktion wird nicht aufgerufen.
Hat jemand eine Idee, was als nächstes zu überprüfen? Was könnte repaint machen() nicht Aufruf paintEvent()?
Nicht auf der QScrollArea, aber stattdessen zugewiesen QLabel löste das Problem für mich. Ich bekomme die update() s für das QLabel. – ypnos
könnten Sie Ihre Header-/Klassendefinition einfügen? Haben Sie alle Ihre Q_OBJECT-Makros dort? gib auch einen kurzen Ausschnitt darüber, wie du dein paintEvent überschreibst() ... – bgs