Hi @ll!
Hier mein Problem:
Ich habe 2 Listboxen und möchte beide mit einer Scrollbar bedienen! In den Listboxen sind immer gleich viele Einträge!
Es ist auch möglich, wenn ihr mir sagen könnt wie ich in eine Listbox so reinschreibe, dass die Daten in einer Tabelle sind!
Ich hoffe, dass jemand von euch ne Ahnung hat, wie das geht! Wenns geht schnell!
Danke
Scrollbar mit mehreren Listboxen!
Hi Dookie,
ich arbeite mit Tkinter!
ich arbeite mit Tkinter!
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Tux,
master ist der Container (Frame oder Fenster) in dem die beiden Listboxen mit dem Scrollbalken erscheinen sollen. Die beiden Listboxen kannst Du über mylistboxes.b1 und mylistboxes.b2 ansprechen und mit Daten füttern, achte darauf, daß immer beide Listboxen die gleiche Anzahl an Zeilen haben!
das Prinzip habe ich hier -> http://www.pythonware.com/library/tkint ... tterns.htm gefunden.
Gruß
Dookie
Code: Alles auswählen
class TwoListBoxes():
def __init__(self, master):
scrollbar = Scrollbar(master, orient=VERTICAL)
self.b1 = Listbox(master, yscrollcommand=scrollbar.set)
self.b2 = Listbox(master, yscrollcommand=scrollbar.set)
scrollbar.config(command=self.yview)
scrollbar.pack(side=RIGHT, fill=Y)
self.b1.pack(side=LEFT, fill=BOTH, expand=1)
self.b2.pack(side=LEFT, fill=BOTH, expand=1)
def yview(self, *args):
apply(self.b1.yview, *args)
apply(self.b2.yview, *args)
mylistboxes = TwoListBoxes(master)
das Prinzip habe ich hier -> http://www.pythonware.com/library/tkint ... tterns.htm gefunden.
Gruß
Dookie
Hi Dookie!
Danke - es funktioniert ausgezeichnet!
Gibt es die Möglichkeit die Listboxen schmaler zu machen und dafür etwas länger? Wenn ja, wie geht das?
Danke - es funktioniert ausgezeichnet!
Gibt es die Möglichkeit die Listboxen schmaler zu machen und dafür etwas länger? Wenn ja, wie geht das?
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Tux,
die beiden Listboxen mit dem Scrollbalken passen sich dem Kontainerobjekt (Frame oder Window) in der Größe automatisch an. Also einfach das Fenster vergrößern und dann sollten auch die Boxen größer werden. Dei Größe von Fenstern kannst Du z.B. über window.minsize(width, height) und window.maxsize(width, height) einstellen. Bei Frames kannst Du direkt beim Erstellen die Optionen width und height angeben.
Gruß
Dookie
die beiden Listboxen mit dem Scrollbalken passen sich dem Kontainerobjekt (Frame oder Window) in der Größe automatisch an. Also einfach das Fenster vergrößern und dann sollten auch die Boxen größer werden. Dei Größe von Fenstern kannst Du z.B. über window.minsize(width, height) und window.maxsize(width, height) einstellen. Bei Frames kannst Du direkt beim Erstellen die Optionen width und height angeben.
Gruß
Dookie
Hi Dookie!
Gibt es auch eine Möglichkeit die Listboxen nicht in extraframes zu machen und trotzdem mit grid es hinzubekommen, dass sie nicht so breit sind!
ICH
Gibt es auch eine Möglichkeit die Listboxen nicht in extraframes zu machen und trotzdem mit grid es hinzubekommen, dass sie nicht so breit sind!
ICH
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
hmm sollte gehen, aber ich hab grid noch nie gebraucht, alternativ kannst ja auch links oder rechts noch einen (leeren) frame hinmachen, der nimmt dann auch seinen Platz ein. Oder die Boxen in einen Frame stecken, dem du eine feste breite gibst, ist allerdings, falls Du das Script weitergeben willst nicht zu empfehlen.
Gruß
Dookie
Gruß
Dookie
Hi @ll
Ich habe mit Tkinter 3 Listboxen erzeugt! Man kann aber in den 3 Listboxen immer nur ein Element markieren (ist auch gut so)! Wie kann man aber jetzt dieses Element herausfinden - die Listboxen haben doch verschiedene Namen!
Danke schon mal
Ich habe mit Tkinter 3 Listboxen erzeugt! Man kann aber in den 3 Listboxen immer nur ein Element markieren (ist auch gut so)! Wie kann man aber jetzt dieses Element herausfinden - die Listboxen haben doch verschiedene Namen!
Danke schon mal
Hallo!
Jan
Findest Du? Ich finde dieses Verhalten etwas eigenwillig. Wenn ich 3 Listboxen habe, will ich in der Regel in jeder der 3 Boxen einen Eintrag markieren können und nicht insgesamt nur einen einzigen. Dieses Default-Verhalten kann man aber mit exportselection=0 abschalten.Tux hat geschrieben:Man kann aber in den 3 Listboxen immer nur ein Element markieren (ist auch gut so)!
Zum Glück! Du rufst für jede Listbox die Methode curselection() auf. Besonders einfach, wenn Du die Listboxen vorher in eine Liste gepackt hast:Wie kann man aber jetzt dieses Element herausfinden - die Listboxen haben doch verschiedene Namen!
Code: Alles auswählen
for i in range(len(listboxes)):
cursel = listboxes[i].curselection()
if cursel:
print "markiert: Eintrag %s in der Listbox %d" % (cursel[0],i)
break # es kann nur einen geben
Hi Voges!
Im Normalfall ist es besser, wenn man in jeder Listbox was markieren kann, aber für mich ist es halt so besser!
Ich werde es mal testen!
DANKE
Im Normalfall ist es besser, wenn man in jeder Listbox was markieren kann, aber für mich ist es halt so besser!
Ich werde es mal testen!
DANKE
Da alle guten Dinge 3 sind, hab ich hier noch ein 3. Problem:
Ich habe eine Listbox im Tkinter! Wie kann ich einen bestimmten Eintrag durch einen anderen ersetzen?
Danke schon mal
Ich habe eine Listbox im Tkinter! Wie kann ich einen bestimmten Eintrag durch einen anderen ersetzen?
Danke schon mal
Hallo!
Jan
Direktes Ändern des Strings geht AFAIK nicht. Da wirst Du Delete() und Insert() kombinieren müssen.Tux hat geschrieben:Wie kann ich einen bestimmten Eintrag durch einen anderen ersetzen?
Jan