运行Python Tkinter GUI的Bash脚本

运行Python Tkinter GUI的Bash脚本,python,bash,user-interface,tkinter,Python,Bash,User Interface,Tkinter,我正试图编写一个Bash脚本,这样我就可以双击运行我的程序。程序使用tkinter,GUI是我唯一需要看到的东西。我的bat文件如下所示: python BudgetGUI.py & 这将运行代码并成功打印我在代码中的所有打印语句,但它从未打开GUI。它只是简单地运行并立即关闭 如何修改bash脚本以运行GUI 提前谢谢 mac和pc的编辑解决方案都很好,不过目前我在pc上。我在Python3中工作。您需要添加对mainloop的调用。如果没有看到您的代码,我不能肯定,但是您可能需要在

我正试图编写一个Bash脚本,这样我就可以双击运行我的程序。程序使用tkinter,GUI是我唯一需要看到的东西。我的bat文件如下所示:

python BudgetGUI.py &
这将运行代码并成功打印我在代码中的所有打印语句,但它从未打开GUI。它只是简单地运行并立即关闭

如何修改bash脚本以运行GUI

提前谢谢

mac和pc的编辑解决方案都很好,不过目前我在pc上。我在Python3中工作。

您需要添加对mainloop的调用。如果没有看到您的代码,我不能肯定,但是您可能需要在底部添加root.mainloop

您不需要bash或bat文件。对于mac,只需添加一个shebang并使文件可执行即可。对于Windows,添加一个shebang并将该文件与py.exe关联

如果要禁止命令行随GUI一起弹出,请使用.pyw扩展名重命名文件

使用tkinter制造的车窗不处于空闲状态*

如果你有

root = Tk()
最后把

root.mainloop()
window1.mainloop()
如果您对此有其他名称,如:

window1 = Tk()
然后,最后把,

root.mainloop()
window1.mainloop()
所以对于你给Tk命名的任何名字

一个小例子

Python 2

上面的代码是针对Python3的。 对于Python2,您只需要将第一行Tkinter更改为T,而不是T

import Tkinter as tk

所以…我的一个问题是我的代码没有使用任何类。我对面向对象编程仍然很模糊,所以我只是强迫它在不使用类的情况下工作。如果我在空闲状态下运行脚本,GUI和shell会很好地弹出。有什么解决办法吗?或者我把自己挖到洞里了吗?课程与此无关哦。我想我是糊涂了。我的代码中没有root.mainloop,但它仍在运行。如果我只是在我的脚本末尾添加了这一点,我怎么能实现你的建议呢?无聊的欺骗并为你添加了这一行。在IDLE之外,您需要自己添加它。正如我所说,您需要将该文件与py.exe关联。目前它与空闲相关。我想你可以在“打开方式”对话框中设置。