13

戻り値 A から C を取得するにはどうすればよいですか? ちなみにクラスは使っていません。

def button:
    mylabel = Label(myGui, text = "hi").grid(row = 0, column = 0)
    A = B.get()
    return A

B = StringVar()
C = ""
myentry = Entry(myGui, textvariable = B).grid(row = 1, column = 0)
Submit = Button(myGui, text = "Submit", command = button).grid(row = 1, column = 1)
4

7 に答える 7

18

簡単な答え: できません。戻り値で何もしないイベント ループを除いて、それを返す場所がないため、コールバックは何も返すことができません。

イベント ベースのアプリケーションでは、通常、クラスに属性を設定します。または、初心者の場合は、グローバル変数を設定できます。グローバル変数を使用することは、長期間維持する必要がある実際のコードには適していませんが、実験には問題ありません。

たとえばC、あなたの例ではグローバル変数のように見えるので、次のようにします。

def button():
    global C
    mylabel = Label(myGui, text = "hi").grid(row = 0, column = 0)
    A = B.get()
    C = A
于 2012-10-27T14:27:08.320 に答える
5

C.set関数内から呼び出すことができますbutton

def button:
    mylabel = Label(myGui, text = "hi").grid(row = 0, column = 0)
    A = B.get()
    C.set(A)
    # return A   # return values are useless here
于 2012-10-27T12:02:07.833 に答える