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
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
| 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 |
# 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