LISTBOX
Eigenschaften

Erzeugen:
self.listbox = tkinter.Listbox(self,selectmode="extended")
Sinnvoll auch mit einem Scrollbar:

# JPanel fuer ui-Elemente
frame1 = tkinter.Frame(self)
frame1.pack(expand=True, fill="both", side="top", pady="5")
sb = tkinter.Scrollbar(frame1)
sb.pack(fill="y",side="right")
self.listbox = tkinter.Listbox(frame1,selectmode="extended")
self.listbox.pack(fill="both",expand=True)
self.listbox["yscrollcommand"] = sb.set
sb["command"]=self.listbox.yviewSetter:
for i in range(20+1):
__self.listbox.insert("end",str(i))
self.listbox.insert(0, "abc")

Getter:
items = self.listbox.curselection() # tuple !!!
if len(items)==0:
messagebox.askokcancel( "Meldung", "Bitte einen Eintrag auswählen") # from tkinter import messagebox
return
index = items[0] # Tuple (indizes)
item = self.listbox.get(index)

Layout-Manager:
self.listbox.pack oder self.textui.grid()

ActiveBackground:
self.listbox.config(activebackground= "yellow")
funktioniert nicht bei Tests

ActiveForeground:
self.listbox.config(activeforeground = "green")
funktioniert nicht bei Tests

Background:
self.listbox.config(background = "green")
self.listbox.config(background = "#FF0000")
self.listbox.config(bg = "#FF0000")

Foreground:
self.listbox.config(foreground="red")
self.listbox.config(fg="red")

Borderwidth:
self.listbox.config(borderwidth="2") #pixel

Borderwidth:
self.listbox.config(bd="2") # pixel

Height:
self.listbox.config(height="2") # Textzeilen

Justify:
self.listbox.config(justify("left")
self.listbox.config(justify("right")
self.listbox.config(justify("justify")

overrelief:
self.listbox.config(overrelief="raised") Mouse Hover
sunken
flat
ridge
solid
groove

relief:
self.listbox.config(relief="raised")
sunken
flat
ridge
solid
groove

state:
self.listbox.config(state="normal")
active
enabled
disabled




Weitere Eigenschaften

Methoden Bedeutung
curselection() getSelectedItems()
items = self.listbox.curselection() # tuple !!!
if len(items)==0:
__messagebox.askokcancel( "Meldung", "Bitte einen Eintrag auswählen")
__return
index = items[0] # Tuple (indizes)
item = self.listbox.get(index)
delete(first[,last]) Löschen von first bis last.
get(first[,last]) Rückgabe der Werte der Listbox von first bis last.
insert(index, *elements) Einfügen eines oder mehrerer Elemente.
listbox.insert(0, "value")
listbox.insert("end", "value")
itemcget(index,option) Gibt den Wert der Option “option” des Eintrags mit dem Index “index” zurück.
itemconfig(index,**option) Setzt die Optionen
selection_clear(first[,last]) Löscht die Selection in der Liste die Einträge von first bis last.
selection_includes(index) Ist index gesetzt?Rückgabe: True oder False
selection_set(first[,last]) Setzt die Selection in der Liste die Einträge von first bis last.
size() Anzahl der Listenelemente.
selectmode "single", "browse", "multiple", "extended".Single und Browse erlauben nur einen Wert zu markieren.
xscrollcommand Anbindung einer Scrollbar
yscrollcommand Anbindung einer Scrollbar



Beispiel

# coding=utf8

import tkinter
from tkinter import messagebox

class MyApp(tkinter.Frame):

	def __init__(self, master=None):
		tkinter.Frame.__init__(self, master)
		self.pack(expand=True, fill="both")
		self.setGUI()

	def setGUI(self):
		# JPanel fuer ui-Elemente
		frameButton = tkinter.Frame(self)
		frameButton.pack(fill="x", side="bottom", pady="5")

		# JPanel fuer ui-Elemente
		frame1 = tkinter.Frame(self)
		frame1.pack(expand=True, fill="both", side="top", pady="5")

		sb = tkinter.Scrollbar(frame1)
		sb.pack(fill="y",side="right")

		self.listbox = tkinter.Listbox(frame1,selectmode="extended")
		self.listbox.pack(fill="both",expand=True)

		self.listbox["yscrollcommand"] = sb.set
		sb["command"]=self.listbox.yview

		for i in range(20+1):
			self.listbox.insert("end",str(i))

		self.listbox.insert(0, "abc")
		self.listbox.insert(0, "def")


		self.bnEsc = tkinter.Button(frameButton)
		self.bnEsc["text"] = "Ende"
		self.bnEsc["command"] = self.quit
		self.bnEsc.pack(side="right")

		self.bnAction = tkinter.Button(frameButton)
		self.bnAction["text"] = "Action"
		self.bnAction["command"] = self.actionClick
		self.bnAction.pack(side="right")
 

	def actionClick(self):
		items = self.listbox.curselection() # tuple !!!
		if len(items)==0:
			messagebox.askokcancel( "Meldung", "Bitte einen Eintrag auswählen") 
			return
		index = items[0] # Tuple (indizes)
		item = self.listbox.get(index)
		messagebox.askokcancel( "1. selektierter Eintrag", item)

		indizes = self.listbox.curselection()
		for i in indizes:
			messagebox.askokcancel( "Selektierter Eintrag", str(i))


root = tkinter.Tk()
root.title("Listbox")
root.geometry("250x200")
app = MyApp(root)
app.mainloop()


Labelframe
Menu