Seite 1 von 1

scroll(int x, int y) und update()

Verfasst: 6. Februar 2010 19:35
von TheClerk
Hallo,

ich habe gerade das Forum hier durchsucht und keine Antwort auf meine Frage gefunden, daher stelle ich sie hier. Eigentlich kann des Rätsels lösung nicht so schwer sein aber ich habe sie noch nicht gefunden.

Wenn ich in einer von QGraphicsview abgeleiteten Klasse zum Beispiel this->scroll(10, 0) auf eine Taste, sagen wir einmal X, lege, verschiebt sich die Ansicht auch brav 10 Pixel nach rechts. Nur rückt von links nichts nach, obwogl eigentlich noch Informationen in der Scene vorhanden sind. Auch ein anschließender Aufruf von this->update() oder this->repaint() bringt nichts. Das Widget ist einem centralWidget (QWidget) untergeordnet, welches einem QMainWindow untergeordnet ist.
Woran liegt es, dass nicht neu gezeichnet wird? Füge ich zum Beispiel Scrollbalken ein, funktioniert alles wunderbar (Scrollen mittels 'X' natürlich nicht)...

Grüße,
Simon

Verfasst: 6. Februar 2010 19:45
von upsala

Code: Alles auswählen

this->translate(10, 0)

Verfasst: 6. Februar 2010 20:09
von TheClerk
Damit ändert sich in der Ansicht nichts.
Verschiebe ich damit nicht die Scene Koordinaten gegenüber den View Koordinaten? Das dürfte sich ja in der Ansicht nicht wiederspiegeln.

Verfasst: 6. Februar 2010 20:49
von upsala
Dann ändere die Werte der QScrollBars...

Verfasst: 6. Februar 2010 21:04
von TheClerk
Und wie mache ich das? Ich habe die ScrollBars über die ScrollBarPolicy ausgeschaltet, ist das also nur für die Darstellung?

Wenn ich sowas wie:

this->horizontalScrollBar()->setValue(10);

schreibe, kommt die Fehlermeldung:

invalid use of incomplete type 'struct QScrollBar'
forward declaration of 'struct QScrollBar'

Scrollen ist doch eine beliebte Funktionalität von Widgets... das muss doch möglich sein :(

Verfasst: 6. Februar 2010 21:14
von upsala
'C++-Grundlagen' ist doch eine beliebte Funktionalität von Qt... das muss doch möglich sein...

Verfasst: 7. Februar 2010 03:08
von TheClerk
Jetzt mal in aller Höflichkeit:

Wenn Du keine Lust hast, nützliche Beiträge im Newbe-Forum zu leisten, dann lass es doch einfach. Ich hasse antworten, die aus einem nichtvollständigen Satz mit drei Punkten am Ende bestehen. Ich mache mir Mühe, um meine Fragen ordentlich zu Formulieren und dann sowas.
Du bist nicht der einzige der Sarkasmus beherrscht, da brauchst Du Dir keine Illusionen zu machen. Du bist auch keines Falls etwas Besonderes. Ich verweise hier auf die Band "WIZO" und das Lied "Raum der Zeit" hör es Dir an und gewinne daraus etwas für Dich.

Es tut mir leid, dem Inhaltsleeren Gehabe verfallen zu sein. Wenn also tatsächlich jemand eine Idee hat, so wäre ich sehr dankbar.

Verfasst: 7. Februar 2010 08:37
von upsala
Schlecht geschlafen? Die eigenen Punkte übersehen? Den Header von QScrollBar mittlerweile includiert?

Verfasst: 7. Februar 2010 14:29
von TheClerk
Zum Zeitpunkt des letzten posts noch gar nicht geschlafen. Ist mir jetzt ja nen bisschen peinlich mit dem vergessenen header. Hättest Du aber auch gleich sagen können ;)

Danke für die Hilfe, läuft jetzt.