2017-07-06 156 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