2016-06-24 11 views
1

Ich habe einen Bildlaufbereich, in dem ein Widget residiert, sagen scrollWidget. Ich habe verschiedene Bilder, die auf dem scrollWidget basierend auf dem scrollValue geladen werden sollen. Beim Scrollen sollte die Bildlaufleiste grundsätzlich rollen, aber das Widget in scrollArea sollte sich nicht bewegen. Basierend auf dem neuen Bildlaufwert aktualisiere ich das Bild in scrollWidget.Wie verschiebe ich den Inhalt in QScrollArea nicht einmal auf Bildlauf

im Quellcode überprüft und festgestellt, dass

void QScrollArea::scrollContentsBy(int, int) 

zum Bewegen des Widget verantwortlich ist.

Also, versucht, die Funktion zu übersteuern und in der überschriebenen Funktion, bin ich nur zurück, nichts zu tun.

Und die überschriebene Funktion wird auf scrollValueChanged aufgerufen. Selbst dann scrollt das scrollWidget irgendwie.

Gibt es noch jemanden, der das scrollWidget in die scrollArea verschiebt?

Vielen Dank im Voraus.

Antwort

0

Sie sollten ein Widget mit eigenen QScrollBar implementieren, kein QScrollArea. Platzieren Sie einfach ein QScrollBar auf Ihrem Widget und steuern Sie es manuell. Vielleicht ist es gut, QAbstractScrollArea abstrakte Klasse zu implementieren, die helfen kann, Schriftrollen zu behandeln (kann aber andere Probleme verursachen, wie es oft bei Qt-Unterrahmen geschieht ...).