2009-07-20 10 views
1

は、これは私のコードです:Tkinterのボタンバインド

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()に何をしなければなら?

+0

「YES」または「NO」を返すという意味の具体的なことができますか?イベントはイベントループから呼び出されるため、「戻す」ことはありません。ウィジェットを更新したり、stdoutで何かを返したり、変数を設定したりしたいですか? –

答えて

0

単純にreturn "pressed yes"は文字列をTKinterハンドラに返しますが、無視されます。

あなたはクリックdefで何かする必要があります。

1

コールバックがイベントループから呼び出され、イベントループがコールバックから返されるすべての値を無視するため、文字列を返すことはできません。戻り値

あなたが「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()"を追加します。

あなたの質問にもっと具体的な回答が必要な場合は、「返品」の意味をよりよく説明する必要があります。ラベル内のテキストを見たい、ポップアップダイアログに表示するなど

2
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()