Listbox vorbelegen(aktivieren) und disabeln

Fragen zu Tkinter.
Antworten
Lambert
User
Beiträge: 40
Registriert: Montag 20. Februar 2006, 09:32

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?
Zuletzt geändert von Lambert am Dienstag 4. April 2006, 07:57, insgesamt 1-mal geändert.
Lambert
User
Beiträge: 40
Registriert: Montag 20. Februar 2006, 09:32

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.
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

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
Lambert
User
Beiträge: 40
Registriert: Montag 20. Februar 2006, 09:32

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.
silentbreaker
User
Beiträge: 7
Registriert: Montag 3. April 2006, 17:58

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
Lambert
User
Beiträge: 40
Registriert: Montag 20. Februar 2006, 09:32

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.
Zuletzt geändert von Lambert am Dienstag 4. April 2006, 15:39, insgesamt 2-mal geändert.
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

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
Antworten