Seite 1 von 1

Mit einem Scrollbar mehrere Listboxes scrollen

Verfasst: Mittwoch 13. Dezember 2006, 11:46
von Eaglescout
Hi Leute,
ich habe ein Problem mit dem scrollbar. Und zwar möchte ich gerne eine Ausgabe in Form einer Tabelle haben. Da ich nichts zu einer Tabelle in Python gefunden habe, habe ich einfach eine mit Listboxen/-es nachgebaut. Nun möchte ich, dass man die Tabelle scrollen kann. Dazu muss ich aber mit einem Scrollbar mehrere Listboxen gleichzeitig scrollen. Und genau da liegt mein Problem: ich weiß nicht, ob oder wie man mit einem Scrollbar mehrere commands ausführen kann. Ich habe es auch schon probiert, eine extra-methode zu schreiben, aber weiß nicht, wie ich das machen soll. Ich kriege dann immer die Fehlermeldung
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Schule\Python23\lib\lib-tk\Tkinter.py", line 1345, in __call__
return self.func(*args)
TypeError: scrollen() takes exactly 1 argument (4 given)
Hier ist mal mein Teil des Codes dazu:

Code: Alles auswählen

        scrollbar = Tkinter.Scrollbar(frame6, orient = Tkinter.VERTICAL)
        scrollbar.grid(row = 0, column = 1, sticky = E + N + S)
        self.tabelle1 = Tkinter.Listbox(frame5, yscrollcommand=scrollbar.set)
        self.tabelle1.grid(row = 0, column = 0, pady = 1)
        self.tabelle2 = Tkinter.Listbox(frame5, yscrollcommand=scrollbar.set)
        self.tabelle2.grid(row = 0, column = 1, pady = 1)
        scrollbar.config(command = self.scrollen)
    def scrollen(self):
        self.tabelle1.yview()
        self.tabelle2.yview()
Ich hoffe, ihr könnt damit was anfangen. Ich werde gleich auch mal die ganze Klasse online stellen.

So, hier der Link zu dem Teil der Klasse, der die Probleme bereitet:
http://pcfriends.de/Filmdatenbank/GBO_oImport.py
Bitte nicht wundern, dass ein paar Frames "umsonst" importiert werden, aber ich war jetzt zu faul, dass alles rauszulöschen...

Wäre echt super, wenn ihr mir helfen könntet. Ich brauch einfach nur eine Tabelle, die man scrollen kann. Wie die realisiert wird, ist mir ziemlich egal, ich habe es halt mit mehreren Listboxes probiert....

Verfasst: Mittwoch 13. Dezember 2006, 14:23
von pyStyler
Hi,

ich habe mal was für dich
http://aspn.activestate.com/ASPN/Cookbo ... /index_txt
vlt ist auch eine Alternative für Dich

Verfasst: Mittwoch 13. Dezember 2006, 14:43
von Eaglescout
Super, es funktioniert!

Tausend Dank, du bist mein Held :) !!!

Nur, um mich an die Foren-Richtlinie zu halten, hier die Lösung, wie es funktioniert:
Ich habe einfach die "scrollen"-Methode folgendermaßen angepasst:

Code: Alles auswählen

    def scrollen(self, *args):
        apply (self.tabelle1.yview, args)
        apply (self.tabelle2.yview, args)

Verfasst: Mittwoch 13. Dezember 2006, 18:34
von Mr_Snede
Der Vollständigkeit halber eine 'getunte' Version:
http://www.python-forum.de/post-32776.html#32776