下次我需要從選單中獲取選定的檔案夾編號來操作此類資料。試圖實作 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)
uj5u.com熱心網友回復:
似乎您想將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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/527597.html
上一篇:如何根據tkinter中的標簽高度動態計算字體大小?
下一篇:為tkinter幀設定影片
