Python tkinter return 来自按钮中函数调用的值
Python tkinter return value from function call in a button
你好,我是 python 的新手,我遇到了困难,我需要帮助。
我的问题是:
我有一个 returns 字符串的函数
我在一个按钮中调用这个函数
如何获取这个值?
我的代码:
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
我可以做到,完美,
但是我无法从函数中取出来
当函数作为事件(按下按钮等)的结果被调用时,您无法获得 return 值。调用函数的代码(在 mainloop
内部)忽略了 return 值。
如果代码的其他部分需要该值,您需要将其存储为对象的属性或全局变量。
修改后的代码中的另一个问题是,您在用户有机会单击按钮之前调用 print
语句,因此即使您使用全局变量,该值也将为空。您必须等到单击按钮并选择文件后才能使用该值。
例如,创建一个打印值的函数,然后将该函数附加到一个按钮。单击按钮选择文件,然后单击按钮显示数据。只要将第一个函数中的值保存到全局变量中,第二个函数中就可以使用。
理论上,将文件路径返回到按钮。
,您将无法按原样执行此操作
使用函数设置对象中的变量,或设置全局变量。
此外,您不需要在调用函数之前使用 lambda,只需调用不带大括号的函数(即 command = select_file)
你好,我是 python 的新手,我遇到了困难,我需要帮助。
我的问题是: 我有一个 returns 字符串的函数 我在一个按钮中调用这个函数 如何获取这个值?
我的代码:
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 我可以做到,完美,
但是我无法从函数中取出来
当函数作为事件(按下按钮等)的结果被调用时,您无法获得 return 值。调用函数的代码(在 mainloop
内部)忽略了 return 值。
如果代码的其他部分需要该值,您需要将其存储为对象的属性或全局变量。
修改后的代码中的另一个问题是,您在用户有机会单击按钮之前调用 print
语句,因此即使您使用全局变量,该值也将为空。您必须等到单击按钮并选择文件后才能使用该值。
例如,创建一个打印值的函数,然后将该函数附加到一个按钮。单击按钮选择文件,然后单击按钮显示数据。只要将第一个函数中的值保存到全局变量中,第二个函数中就可以使用。
理论上,将文件路径返回到按钮。
,您将无法按原样执行此操作使用函数设置对象中的变量,或设置全局变量。
此外,您不需要在调用函数之前使用 lambda,只需调用不带大括号的函数(即 command = select_file)