如何在后续代码中使用 Tkinter 下拉菜单选择中的变量?

问题描述 投票:0回答:1

我有一个 Tkinter 下拉菜单,将选择一个名称,我想在以后的代码中使用该名称。 dir_path 中的“名称”不会等待并采用我在 Tkinter 下拉菜单中选择的值。会显示“-空-”

from tkinter import *

def name(event):
    global name
    name=name_var.get()

name = "- empty -"

window = Tk()
name_var = StringVar(window)
name_label = Label(window, text = 'Please Select Name:',font=10).place(x = 100,y = 50)  
name_var.set("Menu:")
drop_menu = OptionMenu(window,name_var,"John","Mary","Alex",command=name)
drop_menu.place(x = 400,y = 50)

dir_path ="C:\\Documents\\{name}\\*.*".format(name=name)
python tkinter spyder
1个回答
0
投票

问题是您在下拉菜单中选择名称之前正在格式化 dir_path 字符串。相反,您只需在选择名称后格式化 dir_path。

这是一种方法:

from tkinter import *

def name(event):
  global name
  name = name_var.get()
  update_dir()

name = "- empty -" 

def update_dir():
  global dir_path
  dir_path = "C:\\Documents\\{name}\\*.*".format(name=name)

window = Tk()
name_var = StringVar(window)
name_label = Label(window, text='Please Select Name:',font=10).place(x = 100,y = 50)
name_var.set("Menu:")
drop_menu = OptionMenu(window,name_var,"John","Mary","Alex",command=name)
drop_menu.place(x = 400,y = 50)

update_dir() # initialize dir_path
© www.soinside.com 2019 - 2024. All rights reserved.