2017-07-06 124 views
0

我想写一个Bash脚本,以便我可以在双击上运行我的程序。该程序使用tkinter和GUI是我需要看到的唯一的东西。我的bat文件如下:Bash脚本运行Python Tkinter GUI

python BudgetGUI.py & 

这运行的代码,并成功地在我的代码打印的打印语句我有,但它永远不会打开了GUI。它只是通过并立即关闭。

如何修改bash脚本来运行GUI?

在此先感谢!

编辑对于Mac和PC的解决方案将是伟大的,虽然现在我在PC上。我在Python3中工作。

回答

1

您需要添加致电mainloop()。我无法确定没有看到您的代码,但可能需要将root.mainloop()添加到底部。

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

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

+0

所以......一个问题,我有是我的代码不使用任何类。我仍然对面向对象编程非常模糊,所以我只是强迫它在不使用类的情况下工作。如果我从IDLE运行脚本,GUI和shell弹出正常。任何解决方法,或我挖自己到一个洞? –

+0

类与这个 – Novel

+0

无关哦。我想我很困惑。我的代码中没有“root.mainloop()”,但仍然运行。如果我只是将其添加到脚本的末尾,我如何才能实现您的建议? –

0

请与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