Tkinter OptionMenu: Как настроить размер шрифта выпадающего списка?

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

Вот два скриншота, показывающие размеры текста выпадающего меню по умолчанию и измененные:

скриншот выпадающего меню