Bash脚本运行Python Tkinter GUI
问题描述:
我想写一个Bash脚本,以便我可以在双击上运行我的程序。该程序使用tkinter和GUI是我需要看到的唯一的东西。我的bat文件如下:Bash脚本运行Python Tkinter GUI
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 = Tk()
然后,放在最后
window1.mainloop()
等任何名称你给)传统知识istance(
一个小例子
import tkinter as tk
class Window:
root = tk.Tk()
label = tk.Label(root, text = "Ciao").pack()
app = Window()
app.root.mainloop()
Pytho N 2
上面的代码是Python 3的 对于Python 2,你只需要改变的第一行(Tkinter的带T,没有T)
import Tkinter as tk
所以......一个问题,我有是我的代码不使用任何类。我仍然对面向对象编程非常模糊,所以我只是强迫它在不使用类的情况下工作。如果我从IDLE运行脚本,GUI和shell弹出正常。任何解决方法,或我挖自己到一个洞? –
类与这个 – Novel
无关哦。我想我很困惑。我的代码中没有“root.mainloop()”,但仍然运行。如果我只是将其添加到脚本的末尾,我如何才能实现您的建议? –