我想寫一個Bash腳本,以便我可以在雙擊上運行我的程序。該程序使用tkinter和GUI是我需要看到的唯一的東西。我的bat文件如下:Bash腳本運行Python Tkinter GUI
python BudgetGUI.py &
這運行的代碼,併成功地在我的代碼打印的打印語句我有,但它永遠不會打開了GUI。它只是通過並立即關閉。
如何修改bash腳本來運行GUI?
在此先感謝!
編輯對於Mac和PC的解決方案將是偉大的,雖然現在我在PC上。我在Python3中工作。
我想寫一個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()」,但仍然運行。如果我只是將其添加到腳本的末尾,我如何才能實現您的建議? –