#python #tkinter
#python #tkinter #tkinter.optionmenu
Вопрос:
У меня есть список меню опций с большим количеством записей, которые будут использоваться на устройстве с сенсорным экраном. Я могу изменить размер шрифта выбранной категории с помощью PopMenue.config(font=[something])
, но при выборе выпадающего меню записи отображаются мелким шрифтом по умолчанию:
Пример рисунка — красная рамка окружает текст для увеличения шрифта
Как я могу изменить размер шрифта из пунктов выпадающего меню (красная рамка)?
Фрагмент кода:
helv36 = tkFont.Font(family='Helvetica', size=30, weight=tkFont.BOLD)
popupMenu.config(font=helv36)
Ответ №1:
Вы должны использовать nametowidget()
метод, чтобы получить объект widget, соответствующий виджету выпадающего меню, затем установить его конфигурацию.
Вот доступный для выполнения пример:
import tkinter as tk
import tkinter.font as tkFont
root = tk.Tk()
root.geometry('300x200')
helv36 = tkFont.Font(family='Helvetica', size=36)
options = 'eggs spam toast'.split()
selected = tk.StringVar(root, value=options[0])
choose_test = tk.OptionMenu(root, selected, *options)
choose_test.config(font=helv36) # set the button font
helv20 = tkFont.Font(family='Helvetica', size=20)
menu = root.nametowidget(choose_test.menuname) # Get menu widget.
menu.config(font=helv20) # Set the dropdown menu's font
choose_test.grid(row=0, column=0, sticky='nsew')
root.mainloop()
Вот два скриншота, показывающие размеры текста выпадающего меню по умолчанию и измененные: