Seite 1 von 1

QAbstractScrollArea::scrollContentsBy(dx, dy) durchschleifen

Verfasst: 17. Februar 2010 18:17
von Tom_Tom
Hi Leute,

ich habe folgendes Problem. Ich weiß nur noch nicht, ob ich was falsch mache oder ob das ein Bug ist. Ich benutze Qt 4.6.0

Ich habe eine Klasse von QGraphicsView abgeleitet und darin die protected Funktion scrollContentsBy(...) implementiert.
Sobald ich diese Funktion implementiert habe, geht meine ScrollArea auf dem GraphicsView nicht mehr. Ich kann die Scroll-Balken verschieben, aber es tut sich nichts. Obwohl ich mit QAbstractScrollArea::scrollContentsBy(dx, dy) eigentlich das ganze so durchschleife, dass es eig. wieder funktionieren müsste.

Hier mal mein Code:

Code: Alles auswählen

void H4FGraphicsView::scrollContentsBy( int dx, int dy ) {
	//some code...
	QAbstractScrollArea::scrollContentsBy(dx, dy);
}
Kann mir da jemand weiterhelfen?

Verfasst: 17. Februar 2010 21:19
von Christian81
Wenn Du von QGraphicsView ableitest - warum rufst Du dann QAbstractScrollArea::scrollContentsBy() auf?

Verfasst: 18. Februar 2010 07:09
von Tom_Tom
QAbstractScrollArea::scrollContentsBy(dx, dy) rufe ich auf, um die Funktion durchzuschleifen.

Sobald ich diese implementiert habe, habe ich sie ja überschrieben und sie macht ja dann nicht mehr das, was sie soll, sonder das, was ich in die Funktion hineinschreibe. Nachdem mein Code abgearbeitet ist, soll sie aber wieder das tun, was in QAbstractScrollArea für die Funktion scrollContentsBy(...) definiert ist. Deshalb rufe ich das ganze wieder auf diesem Wege auf. Aber leider tut sie nicht das, was sie tun müsste.

Ich weiß nur leider noch nicht, warum.

Verfasst: 18. Februar 2010 07:51
von Christian81
Ist es so schwer zu verstehen?
Du leitest von QGraphicsView ab also musst Du auch scrollContentsBy() von QGraphicsView aufrufen!

Verfasst: 18. Februar 2010 08:15
von Tom_Tom
Hey nicht immer gleich so böse werden.... ^^

Aber du hast Recht. Ich hatte irgendwie nen Denkfehler drin.
Mit QGraphicsView::scrollContentsBy(...) funktioniert es jetzt auch mit dem druchschleifen. Also Danke =)