В этом руководстве по Python мы узнаем все о виджете Python Tkinter OptionMenu .
Виджет OptionMenu также называется раскрывающимся списком или полем со списком. Мы будем изучать все методы на примерах.
Меню опций Python Tkinter
- OptionMenu в Python Tkinter используется для создания выпадающего меню в приложении.
- Он занимает меньше места и отображает пользователю несколько вариантов. Пользователи могут выбрать только один элемент из списка элементов.
- Единственным недостатком OptionMenu является то, что он не может обрабатывать большие данные. Поскольку раскрывающийся список ограничен размером экрана. Таким образом, в случае больших данных используется Listbox, поскольку он обеспечивает функцию прокрутки.
- Вот синтаксис OptionMenu в Python Tkinter
OptionMenu( master, variable, value, *values, **kwargs )
- master — это окно, в котором вы хотите разместить OptionMenu. Это может быть главное окно, дополнительное окно или фрейм.
- переменная означает, что значение виджета не фиксировано, оно будет постоянно меняться. переменная может быть реализована следующим образом:
- StringVar() – Содержит строку; значение по умолчанию “”
- IntVar() — содержит целое число; значение по умолчанию 0
- DoubleVar() — содержит значение с плавающей запятой; значение по умолчанию 0,0
- BooleanVar () — содержит логическое значение, возвращает 0 для False и 1 для True
- значение зависит от типа переменной, если переменная StringVar(), то значением будет любое имя или набор символов.
- *value — это имя списка, в котором мы сохранили все параметры.
- чтобы увидеть полную документацию, запустите приведенный ниже код.
from tkinter import * help(OptionMenu)
Вот изображение для предварительного просмотра OptionMenu. Это раскрывающееся меню, отображающее несколько параметров, и пользователь может выбрать вариант по своему выбору.
Python Tkinter OptionMenu получить значение
- В этом разделе мы узнаем, как получить значение, выбранное пользователем в Python Tkinter OptionMenu .
- OptionMenu отображает несколько параметров, но пользователь может выбрать только один. Итак, чтобы узнать вариант, выбранный пользователем, мы используем метод get() .
- get() применяется к переменной, назначенной OptionMenu, и возвращает текущую выбранную опцию в OptionMenu.
Пример метода get() в Python Tkinter:
В этом примере метод get() используется для извлечения информации, хранящейся в OptionMenu в Python Tkinter. Здесь мы упомянули точный код для использования метода get(), также мы создали полную программу, основанную на методе get() .
def display_selected(choice): choice = variable.get() print(choice)
Вот полный программный код для реализации метода get() в Python tkinter.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#F2B90C') def display_selected(choice): choice = variable.get() print(choice) countries = ['Bahamas','Canada', 'Cuba','United States'] # setting variable for Integers variable = StringVar() variable.set(countries[3]) # creating widget dropdown = OptionMenu( ws, variable, *countries, command=display_selected ) # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
Ширина Python Tkinter OptionMenu
- В этом разделе мы узнаем, как управлять шириной Python Tkinter OptionMenu .
- Ширина — это правое и левое пространство виджета, и ее настройка в соответствии с потребностями приложения важна, поскольку она придает приложению более приятный вид.
- используя параметр ширины в виджете OptionMenu, мы можем изменить ширину. OptionMenu не принимает ширину напрямую, поэтому вам нужно использовать метод конфигурации .
Пример ширины OptionMenu в Python Tkinter
Вот пример того, как мы можем изменить ширину OptionMenu в Python Tkinter. В этом коде мы создали функцию, которая изменит ширину OptionMenu. Пользователь может выбрать размер из опций, и OptionMenu будет изменен на этот размер.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#F26849') def change_width(choice): choice = variable.get() dropdown.config(width=choice) # width choices available. width_size = [10, 15, 20, 25, 30] # setting variable for Integers variable = IntVar() # creating widget dropdown = OptionMenu( ws, variable, *width_size, command=change_width ) # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
В этом выводе отображаются два изображения. Левое изображение имеет ширину, установленную на 10, и когда значение изменяется с 10 на 15, ширина OptionMenu также увеличивается на правом изображении.
Стиль Python Tkinter OptionMenu
- В этом разделе мы узнаем, как применить стиль к OptionMenu в Python Tkinter.
- Стиль — это цвет, шрифт, ширина и другие компоненты для улучшения внешнего вида OptionMenu в Python Tkinter.
Пример стиля OptionMenu в Python Tkinter:
- В этом выводе мы увеличили ширину и предоставили цвет для OptionMenu в Python. Цвет можно изменить, изменив параметр в OptionMenu в Python Tkinter.
- Вот точный код, который используется для изменения высоты, ширины и цвета OptionMenu в Python Tkinter. В этом раскрывающемся списке кода находится переменная, назначенная OptionMenu.
dropdown.config(width=10) dropdown.config(height=2) dropdown.config(bg='light blue')
Вот полный код программы, созданной для реализации параметра стиля в OptionMenu в Python Tkinter.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#BF7C41') def change_color(choice): choice = variable.get() dropdown.config(bg=choice) # color choices available. color_list = ['aquamarine', 'light blue', 'olive drab', 'gray'] # setting variable for Integers variable = StringVar() variable.set(color_list[1]) # creating widget dropdown = OptionMenu( ws, variable, *color_list, command=change_color ) dropdown.config(width=10) dropdown.config(height=2) dropdown.config(bg='light blue') # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
В этом выводе цвет OptionMenu изменяется при изменении параметров. Кроме того, высота и ширина, примененные к нему, придают хороший вид всему приложению.
Команда Python Tkinter OptionMenu
- В этом разделе мы узнаем о необходимости и использовании команды Python Tkinter OptionMenu .
- Команда используется для назначения функции обратного вызова в OptionMenu . Это позволяет вам запускать функцию, если конкретный параметр выбран в OptionMenu.
Пример команды OptionMenu в Python Tkinter:
В этом примере пользователь может выбрать цвет приложения из OptionMenu. Фон окна изменится на выбранный цвет.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#F26849') def change_color(choice): choice = variable.get() ws.config(bg=choice) # color choices available. color_list = ['red', 'green', 'yellow', 'blue', 'pink'] # setting variable for Integers variable = StringVar() # creating widget dropdown = OptionMenu( ws, variable, *color_list, command=change_color ) # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
Вот вывод приведенного выше кода, вы можете видеть, что цвет окна можно изменить, выбрав любой цвет из OptionMenu в Python Tkinter.
Значение параметра Python Tkinter
- Python Tkinter OptionMenu предлагает метод set(), который позволяет установить значение по умолчанию в OptionMenu.
- Метод set() можно применить к переменной, и для этого требуется элемент из списка, который вы хотите отобразить по умолчанию.
Пример команды OptionMenu с параметром set value:
В этом примере мы установили страну по умолчанию как «США». Поэтому, если пользователь не выберет какую-либо опцию, значение по умолчанию будет принято как США (из списка) в OptionMenu.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#597678') # choices available with user. countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States'] # setting variable for strings variable = StringVar() # установите страну по умолчанию Например как United States variable.set(countries[6]) # creating widget dropdown = OptionMenu( ws, variable, *countries ) # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
В этом выводе изображение слева показывает OptionMenu, когда не назначено значение по умолчанию, в то время как изображение справа показывает автоматически выбранное «United States. Поэтому это делается с помощью метода set() в Python Tkinter.
Событие изменения Python Tkinter OptionMenu
Событие — это изменение, произошедшее в ответ на выполненное действие. В OptionMenu каждое изменение опции называется событием. С помощью переменной мы можем получить информацию о произошедших изменениях.
Пример события изменения OptionMenu в Python Tkinter:
В этом примере изменения будут отображаться на терминале. Нижеприведенный код отвечает за отчет обо всех изменяющихся событиях.
def check(*args): print(f"the variable has changed to '{variable.get()}'") variable = StringVar(value='United States') variable.trace('w', check)
Вот полный код программы, которая будет отображать измененные журналы событий в Python Tkinter.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#597678') def check(*args): print(f"the variable has changed to '{variable.get()}'") variable = StringVar(value='United States') variable.trace('w', check) # choices available with user. countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States'] # set default country as United States variable.set(countries[6]) # creating widget dropdown = OptionMenu( ws, variable, *countries ) # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
В этом выводе при каждом изменении опции в OptionMenu на экране терминала появляется сообщение.
Python Tkinter OptionMenu отключить
- Python Tkinter OptionMenu предоставляет состояние метода, с помощью которого OptionMenu может быть выделен серым цветом . После выделения серым цветом все функции OptionMenu отключаются. Никакие изменения не произойдут при нажатии, выпадающий список не будет отображаться.
- Государство предоставляет два варианта:
- disabled — отключает виджет OptionMenu в Python Tkinter.
- нормальный — включает виджет OptionMenu в Python Tkinter.
Пример отключения OptionMenu в Python Tkinter:
В этом примере мы создали флажок и установили правила: если флажок установлен, то OptionMenu находится в нормальном состоянии, а если флажок снят или снят, то OptionMenu перейдет в отключенное состояние.
Эта функция отвечает за изменение состояния виджета OptionMenu в Python Tkinter.
def changeState(): if checkVar.get() == 1: dropdown.configure(state='normal') else: dropdown.configure(state='disabled')
Вот полный код программы.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#393C73') def changeState(): if checkVar.get() == 1: dropdown.configure(state='normal') else: dropdown.configure(state='disabled') variable = StringVar() checkVar = IntVar() checkVar.set(1) # checkbutton widget cb = Checkbutton( ws, text = "Enable/Disable OptionMenu", variable = checkVar, onvalue = 1, offvalue = 0, height=2, width=30, command=changeState ) cb.pack(expand=True) # choices available with user. countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States'] # set default country as United States variable.set(countries[6]) # creating widget dropdown = OptionMenu( ws, variable, *countries ) # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
В выходных данных на левом изображении установлен флажок или флажок, и пользователь может щелкнуть и управлять виджетом OptionMenu в Python Tkinter. Но на правом изображении флажок отключен, и теперь OptionMenu неактивен.
Установите флажок еще раз, чтобы вернуть OptionMenu в рабочее состояние.
Трассировка Python Tkinter OptionMenu
Трассировка аналогична разделу событий изменений, трассировка просто означает отслеживание изменений, произошедших в виджете OptionMenu в Python Tkinter.
Пример события изменения OptionMenu в Python Tkinter:
В этом примере изменения будут отображаться на терминале. Упомянутый ниже код отвечает за отслеживание и отчетность обо всех изменениях, произошедших в виджете OptionMenu в Python Tkinter.
def check(*args): print(f"the variable has changed to '{variable.get()}'") variable = StringVar(value='United States') variable.trace('w', check)
Вот полный код для реализации трассировки в виджете OptionMenu в Python Tkinter.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#597678') def check(*args): print(f"the variable has changed to '{variable.get()}'") variable = StringVar(value='United States') variable.trace('w', check) # choices available with user. countries = ['Bahamas','Canada', 'Cuba', 'Dominica', 'Jamaica', 'Mexico', 'United States'] # set default country as United States variable.set(countries[6]) # creating widget dropdown = OptionMenu( ws, variable, *countries ) # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
В этом выводе при каждом изменении опции в OptionMenu на экране терминала появляется сообщение.
Цвет Python Tkinter OptionMenu
В этом разделе мы увидим, как применить цвет к OptionMenu в Python Tkinter. Применение цвета является частью стилизации виджета.
Пример цвета OptionMenu в Python Tkinter:
В этом примере цвет виджета OptionMenu можно изменить, изменив параметр виджета OptionMenu в Python Tkinter.
from tkinter import * ws = Tk() ws.title('PythonGuides') ws.geometry('400x300') ws.config(bg='#BF7C41') def change_color(choice): choice = variable.get() dropdown.config(bg=choice) # color choices available. color_list = ['aquamarine', 'light blue', 'olive drab', 'gray'] # setting variable for Integers variable = StringVar() variable.set(color_list[1]) # creating widget dropdown = OptionMenu( ws, variable, *color_list, command=change_color ) dropdown.config(width=10) dropdown.config(height=2) dropdown.config(bg='light blue') # positioning widget dropdown.pack(expand=True) # infinite loop ws.mainloop()
В этом выводе цвет OptionMenu изменяется при изменении параметров. Кроме того, высота и ширина, примененные к нему, придают хороший вид всему приложению.