在 tkinter 中打开文件的最简单方法

Jak*_*evi 5 python user-interface tkinter python-3.x

尝试使用“打开文件”按钮制作 GUI。当我运行下面显示的代码时,打开文件对话框会立即打开,而不是在我按下按钮时打开。为什么?有没有一种不涉及使用类的简单方法来解决这个问题?(我目前对课程一无所知,正在做一个时间紧迫的项目)

from tkinter import *

interface = Tk()

def openfile():
    return filedialog.askopenfilename()

button = ttk.Button(interface, text = "Open", command = openfile())
button.grid(column = 1, row = 1)

interface.mainloop()
Run Code Online (Sandbox Code Playgroud)

fal*_*tru 4

代码传递的是openfile函数调用的返回值,而不是函数本身。()通过删除导致调用的尾随来传递函数本身。

from tkinter import *
from tkinter import ttk
from tkinter import filedialog

interface = Tk()

def openfile():
    return filedialog.askopenfilename()

button = ttk.Button(interface, text="Open", command=openfile)  # <------
button.grid(column=1, row=1)

interface.mainloop()
Run Code Online (Sandbox Code Playgroud)