你好,我是蟒蛇的新手,我被困住了,我需要帮助。
我的问题是:我有一个函数返回一个字符串,我在一个按钮中调用这个函数,如何得到这个值?
我的代码:
from tkinter import*
from tkinter import filedialog
file_path = ''
def window():
fen=Tk() fen.geometry('{0}x{1}+{2}+{3}'.format(600, 400, 300, 200))
fen.config(bg = "#87CEEB")
return fen
def select_file():
file_path = filedialog.askopenfilename()
return file_path
def main():
fen = window()
bouton1 = Button(fen, text = "Select a file", command= select_file())
print(file_path)
fen.mainloop()
main()如果我用我的函数打印file_path,我就能做到,它是完美的,
但我不能让它离开这个功能
发布于 2022-04-28 15:42:44
当函数被调用为事件的结果(按按钮等)时,您无法获得返回值。调用函数(在mainloop内部)的代码忽略返回值。
如果代码的其他部分需要该值,则需要将其存储为对象的属性或全局变量。
修改后的代码中的另一个问题是,在用户有机会单击按钮之前调用print语句,因此即使使用全局变量,该值也将为空白。您必须等到单击按钮并选择该文件后才使用该值。
例如,创建一个打印值的函数,然后将该函数附加到一个按钮上。单击按钮选择文件,然后单击按钮显示数据。只要将第一个函数中的值保存到全局变量中,第二个函数中就可以使用该值。
发布于 2022-04-28 15:51:41
理论上,您将无法做到这一点,将文件路径返回到按钮。
使用该函数在对象中设置变量,或设置全局变量。
此外,函数调用之前不需要lambda,只需调用不带大括号的函数(即命令= select_file)。
https://stackoverflow.com/questions/72046606
复制相似问题