Hallo Forum!
Ich habe auf dem üblichen Weg ein Canvas (mit scrollregion) und zwei Scrollbars erzeugt und möchte nun über die .set() - Methode der Scrollbars den sichtbaren Ausschnitt des Canvas bewegen (etwa xScroll.set(0.5, 0.6)). Das Canvas rührt sich allerdings kein Stück, und update/update_idletasks scheinen nicht der richtige Weg zu sein.
(Hintergrund: aus einer Liste der im Canvas gezeichneten Objekte auswählen und die Auswahl sichtbar machen (equivalent zu .see() - methode bei Listen))
Hat da jemand ne Idee ???
schönen Dank im voraus, jocsch
Canvas/Scrollbar
Wenn du uns deinen Quellcode zeigst, können wir helfen. Das Problem in deinem Quellcode zu finden ohne ihn zu kennen ist gelinde gesagt schwierig.jocsch hat geschrieben:Hat da jemand ne Idee ???
cu Sebastian
-
- User
- Beiträge: 31
- Registriert: Freitag 4. April 2003, 13:09
- Wohnort: Egloffstein (Hundshaupten)
Hallo züruck!
Soviel Quellcode gibts da eigentlich noch nicht. Ich stelle mir aber folgendes vor:
Bei Aufruf von self.springInDieMitte() hüpfen die Scrollbars beide brav in die Mitte, aber das assoziierte Canvas rührt und regt sich nicht. Ich hab diese Verhalten zwar schon irgendwo mal dokumentiert gesehen, aber das kann wohl nicht Sinn der Sache sein?
Wer braucht denn hier im Zweifelsfall ein .update[_idletasks)]()? Das Canvas oder die Scrollbars?
Gruss, jocsch
Soviel Quellcode gibts da eigentlich noch nicht. Ich stelle mir aber folgendes vor:
Code: Alles auswählen
def __init__(self):
#(... übliche Infrastruktur für Canavs mit 2 Scrollbars ...)
self.linksrechtsScroll = Scrollbar #(...)
self.einCanvas = Canvas #(... width, height, scrollregion, xscrollcommand = self.linksrechtsScroll.set ...)
self.linksrechtsScroll.config(command = self.einCanvas.xview)
#( singemäss für hoch/runter)
def springInDieMitte(self):
self.linksrechtsScroll.set(0.4, 0.6)
self.obenuntenScroll.set(0.4,0.6)
Wer braucht denn hier im Zweifelsfall ein .update[_idletasks)]()? Das Canvas oder die Scrollbars?
Gruss, jocsch
-
- User
- Beiträge: 31
- Registriert: Freitag 4. April 2003, 13:09
- Wohnort: Egloffstein (Hundshaupten)
Hallo³!
Hat sich erledigt: Direkter Aufruf von
ist die Lösung!
... und Tschüss!
Hat sich erledigt: Direkter Aufruf von
Code: Alles auswählen
self.einCanvas.xview(MOVETO, 0.5)
... und Tschüss!