这是我的代码:
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()
我应该在button1Click()和button2Click()中做什么,以便他们以字符串格式向我的程序返回“YES”或“NO”?
答案 0 :(得分: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()
答案 1 :(得分:1)
你不能“返回”一个字符串,因为从事件循环中调用了回调,并且事件循环忽略了回调返回的所有值,因为它不知道如何处理返回的值。 / p>
如果要将“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 :(得分:0)
简单地return "pressed yes"
会将字符串返回给TKinter处理程序,后者会忽略它。
您必须在点击定义中执行某些操作,例如:更新标签文本