在Tkinter Python中通过浏览按钮设置条目值

在Tkinter Python中通过浏览按钮设置条目值,python,class,tkinter,tkinter-entry,python-class,Python,Class,Tkinter,Tkinter Entry,Python Class,我对Python不是很在行,尤其是在使用类时。我编写这段代码是为了使用browse按钮来设置输入值,问题是这样我应该为每个按钮创建一个browse方法。有更简单的方法解决这个问题吗 from tkinter import * from tkinter.filedialog import askopenfilename class App: def __init__(self, parent): self.button1 = Button(text = '

我对Python不是很在行,尤其是在使用类时。我编写这段代码是为了使用browse按钮来设置输入值,问题是这样我应该为每个按钮创建一个browse方法。有更简单的方法解决这个问题吗

from tkinter import *
from tkinter.filedialog import askopenfilename

class App:
    def __init__(self, parent):        
        self.button1 = Button(text = 'browse', command = self.browse1)     
        self.button1.grid (row = 0, column = 1)

        self.input_file1 = Entry(textvariable = self.browse1)
        self.input_file1.grid(row=0, column = 0)

        self.button2 = Button(text = 'browse', command = self.browse2)     
        self.button2.grid (row = 1, column = 1)

        self.input_file2 = Entry(textvariable = self.browse2)
        self.input_file2.grid(row=1, column = 0)

    def browse1(self):
        filename = askopenfilename(title = 'Select a file')
        self.input_file1.delete(0, END)
        self.input_file1.insert(0, filename)

    def browse2(self):
        filename = askopenfilename(title = 'Select a file')
        self.input_file2.delete(0, END)
        self.input_file2.insert(0, filename)

root = Tk()
root.geometry('900x550')
root.title('prove') 
MyApp = App(root)  
root.mainloop()

谢谢大家!

如果您具有以下功能:

def browse(self, entry):
    filename = askopenfilename(title = 'Select a file')
    entry.delete(0, END)
    entry.insert(0, filename)
然后将定义更改为:

self.button1 = Button(text = 'browse', command = lambda: self.browse(self.input_file1))     
self.button1.grid (row = 0, column = 1)

self.input_file1 = Entry()
self.input_file1.grid(row=0, column = 0)
然后,当按下按钮时,它调用
lambda
函数,该函数调用
browse()
函数,将相应的输入字段传递给该函数,然后该函数可以插入文本


希望这是有意义的,如果您有任何问题,请告诉我:)

遵循此方法很好!!谢谢你,现在它成功了,我相信这不会很难!