1

これは私のコードです:

import Tkinter
from Tkconstants import *

tk = Tkinter.Tk()


class MyApp:

    def __init__(self,parent):

        self.frame = Tkinter.Frame(tk,relief=RIDGE,borderwidth=2)
        self.frame.pack()

        self.message = Tkinter.Message(tk,text="Symbol Disolay")

        label=Tkinter.Label(self.frame,text="Is Symbol Displayed")
        label.pack()

        self.button1=Tkinter.Button(self.frame,text="YES")
        self.button1.pack(side=BOTTOM)
        self.button1.bind("<Button-1>", self.button1Click)

        self.button2=Tkinter.Button(self.frame,text="NO")
        self.button2.pack()
        self.button2.bind("<Button-1>", self.button2Click)


    def button1Click(self, event):
            "pressed yes"

    def button2Click(self, event):
            "pressed no"

myapp = MyApp(tk)
tk.mainloop()

プログラムに文字列形式で「YES」または「NO」を返すには、button1Click() と button2Click() で何をすればよいですか?

4

3 に答える 3

2

コールバックはイベント ループから呼び出され、イベント ループは返された値をどう処理するかを認識していないため、コールバックから返されたすべての値を無視するため、文字列を「返す」ことはできません。

「YES」または「NO」を self.message ウィジェットに適用する場合は、コールバックを次のように変更できます。

def button1Click(self, event):
        self.message.configure(text="YES")

def button2Click(self, event):
        self.message.configure(text="NO")

次に、メッセージ ウィジェットを表示する必要があります。たとえば、コードのどこかに「self.message.pack()」を追加します。

質問に対するより具体的な回答が必要な場合は、「戻る」の意味をより適切に説明する必要があります。テキストをラベルに表示するか、ポップアップ ダイアログに表示するかなどです。

于 2010-01-11T17:39:50.363 に答える
0
import Tkinter
from Tkconstants import *

tk = Tkinter.Tk()


class MyApp:

    def __init__(self,parent):

        self.frame = Tkinter.Frame(tk,relief=RIDGE,borderwidth=2)
        self.frame.pack()

        self.message = Tkinter.Message(tk,text="Symbol Disolay")

        label=Tkinter.Label(self.frame,text="Is Symbol Displayed")
        label.pack()

        self.button1=Tkinter.Button(self.frame,text="YES")
        self.button1.pack(side=BOTTOM)
        self.button1.bind("<Button-1>", self.button1Click)

        self.button2=Tkinter.Button(self.frame,text="NO")
        self.button2.pack()
        self.button2.bind("<Button-1>", self.button2Click)


    def button1Click(self, event):
            return "YES"

    def button2Click(self, event):
            return "NO"

myapp = MyApp(tk)
tk.mainloop()
于 2010-09-12T02:13:34.783 に答える
0

return "pressed yes"文字列を TKinter ハンドラに返すだけで、無視されます。

クリック定義で何かをする必要があります。たとえば、ラベル テキストを更新します。

于 2009-07-20T09:12:00.400 に答える