2017-11-04 11 views
-1

私はいくつかのコードを持っています。私の目標は、左ボタンをクリックすると「Programming is fun!」というテキストがポストされるようにすることです。もう一度押すと、そのテキストが「プログラムは楽しい」に変更されます。私の考えは、最初のステートメントが必要な場合はx = 0にし、2番目のステートメントが必要な場合はx = 1にすることです。 xが定義されていないと言って、私はxを返そうとしましたが、単純にはそうではありません...さまざまな方法を試しましたが、わかりません。思考?私はこれに代わる方法を望んでいます。なぜなら、私のことがうまくいくかどうかわからないからです。Python(別の2つのメッセージ)

def text(): 
pf = Label(window2,text="Programming is fun") 
pf.pack() 
x = 0 

def text2(): 
    fp = Label(window2,text="It is fun to program") 
    fp.pack() 
    x = 1 

def bt(event): 
    if x == 0: 
     text() 
    elif x == 1: 
     text2() 

window2 = Tk() 
window2.geometry("500x500") 
+0

コードは、SyntaxErrorで始まります。適切なMCVE https://stackoverflow.com/help/mcveを構成するまで編集してください。投稿したコードによって生成されたトレースバックを投稿します。 –

答えて

0

私は、この機能を使ってテキストを作成してから、他の機能を実行するためにキーを再バインドして、その関数が前のテキストを削除し、新しいテキストを作成してから直前の関数にリバインドし、サイクルが続行されます。ここにコードがあります。

def text(event): 
    global pf 
    fp.pack_forget() 
    pf = Label(window2,text="Programming is fun") 
    pf.pack() 
    window2.bind("<Button-1>", text2) 

def text2(event): 
    global fp 
    pf.pack_forget() 
    fp = Label(window2,text="It is fun to program") 
    fp.pack() 
    window2.bind("<Button-1>", text) 

window2 = Tk() 
window2.geometry("500x500") 

pf = Label(window2,text="Programming is fun") 
fp = Label(window2,text="It is fun to program") 

window2.bind("<Button-1>", text) 
0

問題は、あなたの関数のスコープ内で、変数xが実際に定義されていない、ということです。

例:あなたが関数内の変数にアクセスしたい場合は

height = 5 

def some_function(): 
    # code here can not access height just like that 

、あなたは一般的に3つのオプションがあります。

1)の代わりにクラスでコードを入れてください。これには、object oriented programmingの理解が必要です。初心者の方は、これが最適ではないかもしれません。

2)関数の引数として変数を渡し、関数のパラメータリストに追加します。この:

def my_function(height): 
    # here height can be used 

をAND関数を呼び出すとき:

height_of_bob = 2 
my_function(height_of_bob) 

3)global variableを使用してください。これは通常は必要ではなく、一般的にはconsidered bad practiceですが、問題は解決します。

+0

グローバル変数を試しましたが、xを変更するには別の方法が必要だと思いますが、他のアイデアはありますか? – SilverCrafter7

+0

使用する前にグローバルとして宣言していますか? [this](http://www.geeksforgeeks.org/global-local-variables-python/)の例(すべてのことを必ず読んでください)のように? – TAsk

+0

本当にありがとうございます。でも、1時間ほど離れた後、私は映画を見て、心の後ろでそれをやり遂げる方法を考えて、うまくいくものを見つけました。掲示される..... – SilverCrafter7

関連する問題