Python 如何将所选文件名从tkfiledialog GUI传递到另一个函数
我正在使用Tkinter构建一个简单的桌面应用程序,它有一个浏览按钮,用户可以从计算机中选择文件(下面的代码位于一个名为gui.py的文件中): 我以前从未使用过Tkinter或使用python创建GUI,因此请提供任何帮助 我想你的意思是什么 这是一个解决方案,我假设您的意思是,您希望将所选文件的名称传递给predict.pyPython 如何将所选文件名从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
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()