从菜单Tkinter中获取所选选项



我需要从菜单中获取选定的文件夹编号,以便下次操作此类数据。尝试实现optionMenu使程序更容易,但我需要创建Frame,它包含几个菜单。

使用回调(菜单(方法,我试图获得数字,但程序打印前两个数字。

from tkinter import *
import tkinter as tk
from tkinter import ttk
root = Tk()
root.geometry("300x150")
frame = Frame(root)
frame.pack()
menu_frame = Menu(root)
file_menu = Menu(menu_frame, tearoff=0)
folders = ['25', '70', '200']
sub_menu = Menu(menu_frame, tearoff=0)
for folder in folders:
sub_menu.add_command(label=folder, command=lambda: callback(sub_menu))
file_menu.add_cascade(label='Open folder... ', menu=sub_menu)
menu_frame.add_cascade(label='File', menu=file_menu)
file_menu.add_separator()
file_menu.add_command(label='Exit', command=root.destroy)
def callback(menu):
for index in range(2):
x = menu.entrycget(index, "label")
print(x)

似乎您想将folder作为参数添加到callback(),可以通过lambda传入

sub_menu = Menu(menu_frame, tearoff=0)
for folder in folders:
sub_menu.add_command(label=folder, command=lambda f=folder: callback(f))

def callback(folder):
print(folder)

最新更新