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

我应该在 button1Click() 和 button2Click() 中做什么,以便它们以字符串格式向我的程序返回“YES”或“NO”?

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 回答