ttk.Combobox
Textfeld mit einer Drop-Down-Liste
ttk.Combobox erzeugen
cb = ttk.Combobox(parent, Optionen)
| Optionsname | Beschreibung |
|---|---|
| exportselection | tk.YES: Ausgewählter Text kann per
STRG-C ins Clipboard exportiert werden (default) |
| justify | Ausrichtung des Textes: tk.LEFT,
tk.CENTER oder tk.RIGHT |
| height | Höhe der Listbox in Zeilen |
| postcommand | Funktion, die vor der Anzeige der Listbox aufgerufen wird |
| state | 'readonly': Werte sind im Entry nicht editierbar,
'normal': Werte sind editierbar (default) oder
'disabled': Combobox wird grau hinterlegt, keine Interaktion möglich |
| textvariable | Variable, die den Inhalt der Auswahl festhält |
| values | Tupel von möglichen Werten |
| width | Breite der Combobox in mittlerer Zeichenbreite |
ttk.Combobox kennt die Standardoptionen: class_, cursor, placeholder, style und takefocus
Das folgende Programm stellt eine Combobox dar und reagiert auf die Auswahl:
import tkinter as tk
from tkinter import ttk
class A(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("300x200")
self._createWidgets()
def _createWidgets(self):
self.svar = tk.StringVar()
fruits = ('Banane', 'Pfirsich', 'Zitrone')
self.svar = tk.StringVar(value=fruits[0])
cBox = ttk.Combobox(self,
textvariable=self.svar,
values=fruits,
postcommand=self._onPost,
state='readonly')
cBox.pack()
cBox.bind('<<ComboboxSelected>>', self._onSelectCombo )
def _onPost(self):
print('Listbox offen...')
def _onSelectCombo(self, event):
print(self.svar.get())
if __name__ == '__main__':
window = A()
window.mainloop()
Methoden
Combobox kennt folgende Methoden:
| Methode | Beschreibung |
|---|---|
| cb.current(index) | Die Combobox markiert den Wert aus values,
die dem index entspricht |
| cb.current() | Es wird ein Index von values ausgegeben,
oder -1 |
| cb.get() | Aktueller Wertwird zurückgeliefert |
| cb.set(value) | Setzt den Wert der Combobox auf value.
Dieser braucht nicht in values vorzukommen. |
Es werden die folgenden allgemeinen Widgetmethoden unterstützt:
- Konfigurationsmethoden:
cget(…)undconfigure(…) - Sonstige Methoden:
identify(…),instate(…)undstate(…)
Combobox kennt darüberhinaus die Entry-Methoden.
Virtuelle Ereignisse
Combobox kennt das virtuelle Ereignis '<<ComboboxSelected>>' -- ein Element wird ausgewählt.