2017-07-06 21 views
0

ダブルクリックでプログラムを実行できるようにBashスクリプトを作成しようとしています。このプログラムはtkinterを使用しており、私が見る必要があるのはGUIだけです。Python Tkinter GUIを実行するBashスクリプト

python BudgetGUI.py & 

これはコードを実行して、私がコード全体で行った印刷ステートメントを正常に印刷しますが、GUIを開くことはありません。それはすぐに実行され、すぐに終了します。

GUIを実行するためにbashスクリプトを変更するにはどうすればよいですか?

ありがとうございます!

編集私はPCを使用していますが、macとpcの両方のソリューションは素晴らしいかもしれません。私はPython3で作業しています。

答えて

1

mainloop()に電話を追加する必要があります。私はあなたのコードを見ることなく確実に言うことはできませんが、おそらくroot.mainloop()を底に追加する必要があります。

bashファイルやbatファイルは必要ありません。お使いのMacの場合は、シバンを追加してファイルを実行可能にします。 Windowsの場合は、シバンを追加し、ファイルをpy.exeに関連付けます。

GUIとともにコマンドラインがポップアップしないようにするには、ファイルの名前を.pyw拡張子で変更します。

+0

だから... ...私が持っている一つの問題は、私のコードではクラスを使用していないということです。私はまだオブジェクト指向プログラミングではあまりにも曖昧ですので、クラスを使用せずに動作させるだけです。 IDLEからスクリプトを実行すると、GUIとシェルが正常にポップアップします。これに対処するには? –

+0

クラスはこれとは関係ありません – Novel

+0

ああ。私は混乱していたと思う。私は自分のコードに "root.mainloop()"を持っていませんが、まだ実行しています。スクリプトの最後に追加しただけの場合は、どのように提案しているのですか? –

0

Tkinterので作られた窓がIDLE *の外に滞在してください

あなたがのようなもののために別の名前を持っている場合、最後に

root = Tk() 

root.mainloop() 

を入れている場合:

window1 = Tk() 

そして、最後に

window1.mainloop() 

を置くので、任意の名前のためにあなたは、Tkののistance()

少し例に与えた

import tkinter as tk 

class Window: 
    root = tk.Tk() 
    label = tk.Label(root, text = "Ciao").pack() 


app = Window() 
app.root.mainloop() 

ピソnは2

上記のコードは、あなただけの最初の行(TとTkinterのではなく、t)を変更する必要があるのpython 2用のPython 3 です

import Tkinter as tk 
関連する問題