Hi,
ich habe ein eigenes Widget MyWidget, das von QWidget abgeleitet ist und die paintEvent Methode überschreibt und irgendwas zeichnet.....
Nun möchte ich, falls der Inhalt, der in MyWidget gezeichent wird breiter ist als das Widget, dass Scrollbars kommen.
Dazu habe ich an der Stelle, wo MyWidget erzeugt wird ein Objekt von QScrollArea erzeugt und mit setWidget einen Pointer auf MyWidget übergeben.
Leider sehe ich keine Scrollbars. Wie kann ich denn in der paintEvent Methode triggern, dass die Zeichung über den Rand hinausgeht und QScrollArea die Scrollbars gezeichnet werden ???
Gruss,
Nando
QT4.2.3: QScrollArea Problem
Eigentlich kannst Du ja nur dort zeichnen, wo auch eine Fläche ist - sprich, in dem Augenblick, wo Du Dein MyWidget vergrösserst, sollten dann auch Scrollbars kommen.
QAbstractScrollArea besitzt die Methoden viewport() und setViewport(QWidget *) - damit sollte sich doch auch was anstellen lassen, oder ?
LG
Andy
QAbstractScrollArea besitzt die Methoden viewport() und setViewport(QWidget *) - damit sollte sich doch auch was anstellen lassen, oder ?
LG
Andy
Was passiert denn, wenn Du im QPainter-Constructor nicht "this" angibst, sondern "viewport()" ? dann zeichnest Du nicht auf deinem Widget, sondern direct im viewport - das ja auch ein QWidget ist. Bleibt nur die Frage, ob das viewport-Widget auch merkt, dass sich vergrössert hat.
Notfalls kannst Du auch versuchen, mit einem resize() den viewport zu vergrössern, damit was scrollt
Notfalls kannst Du auch versuchen, mit einem resize() den viewport zu vergrössern, damit was scrollt