How to make an OptionMenu maintain the same width using tkinter?



The OptionMenu allows users to select an option from the given menu of items. To prepare an OptionMenu, we use the OptionMenu(arguments) constructor, which takes the parent widget, a variable to store the options, the default option, and selectable options. 

However, in some cases, we can find that the options width is quite different from the pane width. We can maintain the width of the options by finding the maximum length from the given options. Now, by using the config(width) method, we can set the width of the OptionMenu.

Example

#Import Tkinter library
from tkinter import *
from tkinter import ttk

#Create an instance of Tkinter frame or window
win= Tk()

#Set the geometry of tkinter frame
win.geometry("750x250")

#Create Menu Items
options=("Low", "Medium", "High")

#Find the length of maximum character in the option
menu_width = len(max(options, key=len))

#Create an OptionMenu
menu=OptionMenu(win, options[0], *options)
menu.config(width=menu_width)
menu.pack(pady=30, ipadx=10)

win.mainloop()

Output

Running the above code will display a window that contains an option pane with a list of options. The width of the options depends upon the maximum length of the string in the given options.

raja
Published on 22-Apr-2021 07:18:59
Advertisements