Seite 1 von 1

Listbox vorbelegen(aktivieren) und disabeln

Verfasst: Montag 3. April 2006, 15:42
von Lambert
Hi Zusammen,

Ich versuche eine Listbox die ich aufrufe vorzubelegen. Also beim aufruf soll meinetwegen der erste Eintrag bereits als aktiv makiert sein. Kann mir da jemand helfen?

Verfasst: Montag 3. April 2006, 15:56
von Lambert
kleine Erweiterung meiner Frage,

Ich möchte mir eine Listbox anzeigen lassen die man nicht verändern kann. Genauer: Ich lese aus einer Datei einen Eintrag aus der in einer Listbox mit vielen Einträgen auch vorkommt. Z.B. Steht in der Datei "Eins" und in der Listbox "Eins", "Zwei" und "Drei". Nun möchte ich wenn in der Datei "Eins" steht die Listbox grau angezeigt bekommen und dem User die möglichkeit nehmen selbst etwas auszuwählen. Stattdesen soll der Eintrag "Eins" makiert sein.

Verfasst: Montag 3. April 2006, 16:19
von Mr_Snede
Zu seinem 1. Post:

Code: Alles auswählen

from Tkinter import *
root = Tk()
listbox = Listbox(root)
listbox.pack()

vals = ['1', '2','3']
for v in vals:
   listbox.insert(END, v)
listbox.select_set(0) # sets the first element
root.mainloop()
gefunden über google mit folgendem Suchbegriff:
tkinter listbox default selection

--> http://www.codecomments.com/archive278- ... 07615.html

Ansonnsten schaue ich für Tkinter zuerst bei effbot.org nach
--> http://effbot.org/tkinterbook/listbox.htm

Deinen 2. Post muss ich mir heute Abend mal in Ruhe durchlesen.

cu Sebastian

Verfasst: Montag 3. April 2006, 17:14
von Lambert
Vielen Dank schonmal. Ich denke ich habe mich wahrscheindlich etwas verwirrend ausgedrückt. Mein zweiter Post sollte sagen das ich eine Listbox möchte die nur anzeigt, aber nicht mehr selectierbar ist.

Verfasst: Montag 3. April 2006, 20:42
von silentbreaker
Lambert hat geschrieben:Vielen Dank schonmal. Ich denke ich habe mich wahrscheindlich etwas verwirrend ausgedrückt. Mein zweiter Post sollte sagen das ich eine Listbox möchte die nur anzeigt, aber nicht mehr selectierbar ist.
Hallo,

für dein Problem gibt es eine einfache Lösung:

zum deaktivieren:

Code: Alles auswählen

listbox['state']=DISABLED
und zum aktivieren:

Code: Alles auswählen

listbox['state']=NORMAL

Verfasst: Dienstag 4. April 2006, 08:01
von Lambert
Ich fürchte ich habe noch eine Frage. Ich brauche jetzt eine Zusammenfassung der beiden Lösungen. Ich möchte eine gedisabelte Listbox in der trotzdem ein Eintrag hervorgehoben ist. Das Beispiel sieht bei mir so aus:

Code: Alles auswählen

from Tkinter import * 
root = Tk() 
listbox = Listbox(root) 
listbox.pack() 

vals = ['1', '2','3'] 
for v in vals: 
   listbox.insert(END, v) 
listbox.select_set(0)
listbox["state"]=DISABLED
root.mainloop()


Nur verschwindet sobald ich den DISABLED setze das select_set in der Listbox.

Verfasst: Dienstag 4. April 2006, 14:14
von Mr_Snede
Lambert hat geschrieben:Ich fürchte ich habe noch eine Frage.
Prinzipiell kein Problem.

Aber für das Wort:
Lambert hat geschrieben:gedisabelte
bekommst du hiermit einen virtuellen Satz heiße Ohren :-)
Und hast du dich freiwillig gemeldet deinen Quellcode (zur Übung) in Python Tags zu setzen.

cu Sebastian