Sie sind hier: Python
Zurück zu: Sprachen
Allgemein: Vorlesungen Labore Sinnvolle Programme Lineare Regression GUI-Entwurfsarbeit Single-Format Design Pattern-Termine Observer1 Bsp2 Json-Array Json-Dialogelemente Webtechnologien

Suchen nach:

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()

Gehe zu: Labelframe Menu