Unterschied tk.OptionMenu und ttk.OptionMenu
Verfasst: Samstag 12. August 2023, 10:09
habe kürzlich festgestellt, dass das tk.OptionMenu auf meinem neuen Smartphone nicht mehr richtig funktioniert. Habe dann mal probeweise tk.OptionMenu in ttk.OptionMenu geändert. Dabei fiel mir etwas komisches auf. In dem dropdown-Menü von "ttk" fehlt der erste Eintrag. Habe ein kleines Testprogramm angehängt.
Wie kann das passieren?
import tkinter as tk
import tkinter.font as tkFont
from tkinter import ttk # für Version 2
root = tk.Tk()
root.geometry('300x200')
font_arial = tkFont.Font(family='Arial', size=20)
von_stunden1=[6,7,8,9,10,11,12,13,14]
von_stunden2=[6,7,8,9,10,11,12,13,14]
von_stunde_ausgewaehlt1 = tk.StringVar(root, value=von_stunden1[0])
von_stunde_ausgewaehlt2 = tk.StringVar(root, value=von_stunden2[0])
#Version 1: hier werden im dropdown die Zahlen "6"-14 angezeigt
auswahl_von_stunden1 = tk.OptionMenu(root, von_stunde_ausgewaehlt1, *von_stunden1)
auswahl_von_stunden1["menu"].config(font=font_arial)
#Version 2: hier werden im dropdown die Zahlen "7"-14 angezeigt und nach Auswahl die ausgewählte Zahl markiert
auswahl_von_stunden2 = ttk.OptionMenu(root, von_stunde_ausgewaehlt2, *von_stunden2)
auswahl_von_stunden2["menu"].config(font=font_arial)
auswahl_von_stunden1.grid(row=0, column=0, sticky='nsew')
auswahl_von_stunden2.grid(row=0, column=1, sticky='nsew')
root.mainloop()
Wie kann das passieren?
import tkinter as tk
import tkinter.font as tkFont
from tkinter import ttk # für Version 2
root = tk.Tk()
root.geometry('300x200')
font_arial = tkFont.Font(family='Arial', size=20)
von_stunden1=[6,7,8,9,10,11,12,13,14]
von_stunden2=[6,7,8,9,10,11,12,13,14]
von_stunde_ausgewaehlt1 = tk.StringVar(root, value=von_stunden1[0])
von_stunde_ausgewaehlt2 = tk.StringVar(root, value=von_stunden2[0])
#Version 1: hier werden im dropdown die Zahlen "6"-14 angezeigt
auswahl_von_stunden1 = tk.OptionMenu(root, von_stunde_ausgewaehlt1, *von_stunden1)
auswahl_von_stunden1["menu"].config(font=font_arial)
#Version 2: hier werden im dropdown die Zahlen "7"-14 angezeigt und nach Auswahl die ausgewählte Zahl markiert
auswahl_von_stunden2 = ttk.OptionMenu(root, von_stunde_ausgewaehlt2, *von_stunden2)
auswahl_von_stunden2["menu"].config(font=font_arial)
auswahl_von_stunden1.grid(row=0, column=0, sticky='nsew')
auswahl_von_stunden2.grid(row=0, column=1, sticky='nsew')
root.mainloop()