尝试使用 tkinter 从函数中获取变量

Trying to get a variable from a function using tkinter

我一直在尝试将打印输出放入变量中。每当我调用该函数时,它只是简单地重复按钮过程。我尝试使用 global,但它似乎不起作用。

请帮忙谢谢。

from tkinter import *
from tkinter import filedialog
import tkinter as tk

def openFile():
    filepath = filedialog.askopenfilename(title="Open for me")
    print(filepath)
    window.destroy()

window = tk.Tk()
window.title("Insert Excel File")
window.geometry("200x200")
button = Button(text="Open",command=openFile,height=3,width=10)
button.pack()
window.mainloop()

print ,将字符串输出到 stdout 它不会将值存储在变量中,您需要自己存储它。

由于您使用的是回调,因此无法 return 该值。实现这个最好的方法是使用类,不好的方法是使用一个全局变量来存储结果

我假设您不熟悉 类,因此可能的解决方案是

from tkinter import *
from tkinter import filedialog
import tkinter as tk

path = ""
def openFile():
    global path
    path = filedialog.askopenfilename(title="Open for me")
    window.destroy()

window = tk.Tk()
window.title("Insert Excel File")
window.geometry("200x200")
button = Button(text="Open",command=openFile,height=3,width=10)
button.pack()
window.mainloop()

# do something with path e.g. print
print(path)