Python 如何将所选文件名从tkfiledialog GUI传递到另一个函数

Python 如何将所选文件名从tkfiledialog GUI传递到另一个函数,python,user-interface,tkinter,backend,Python,User Interface,Tkinter,Backend,我正在使用Tkinter构建一个简单的桌面应用程序,它有一个浏览按钮,用户可以从计算机中选择文件(下面的代码位于一个名为gui.py的文件中): 我以前从未使用过Tkinter或使用python创建GUI,因此请提供任何帮助 我想你的意思是什么 这是一个解决方案,我假设您的意思是,您希望将所选文件的名称传递给predict.py if __name__ == "__main__": app = simpleapp_tk(None) app.title('my applicatio

我正在使用Tkinter构建一个简单的桌面应用程序,它有一个浏览按钮,用户可以从计算机中选择文件(下面的代码位于一个名为gui.py的文件中):

我以前从未使用过Tkinter或使用python创建GUI,因此请提供任何帮助

我想你的意思是什么 这是一个解决方案,我假设您的意思是,您希望将所选文件的名称传递给predict.py

if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('my application')
    app.configure(command=main(tkFileDialog.askopenfilename()))
    app.mainloop()
在predict.py中,进行这些更改

首先导入GUI

from gui import simpleapp_tk
第二,使主函数被传递一个参数

def main(filename="test.foo"):
最后,在运行例程中,实例化GUI,获取文件名,然后运行main函数

if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('my application')
    app.mainloop()
    # Here it will wait until the GUI finishes and exits
    filename = app.labelVariable.get()
    main(filename)
我们还能做些什么 您可以从gui.py导入predict.py并更改“Go”按钮的方法调用

或者

如果将button_browse设置为simpleapp_tk的一个属性,那么如果要将GUI导入其他位置,则可以在外部轻松设置该属性的命令,这是在predict.py中

if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('my application')
    app.configure(command=main(tkFileDialog.askopenfilename()))
    app.mainloop()

你说的“传给”到底是什么意思?你的意思是gui应用程序将导入文件并在其中运行函数,还是predict.py实例化simpleapp_tk并将其设置为变量?@Uzzee因此,我在上面添加了gui的外观。当一个人点击浏览按钮并选择一个文件时,我希望该文件路径进入上面“main”函数中的“filename”变量。忘记它们在不同的文件中。我现在把它们放在同一个文件里了。好吧,我在这上面贴了一个答案,涵盖了几个场景,如果你有任何问题,请给我一个评论!首先不要使用lambda。调试适当的函数要容易得多。
if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('my application')
    app.configure(command=main(tkFileDialog.askopenfilename()))
    app.mainloop()