2012-04-19 76 views
0

我正在尝试第一次使用Tkinter,并试图在单击按钮时调用某个函数。这是我的代码的一部分。 mt指的是我通过将它附加到标签上而使其动态化的标签,以便我可以更改标签所说的内容。我希望用户能够在输入框中键入内容,点击按钮,它会将标签更改为输入内容。如何在Tkinter中单击按钮时调用动作

def new(self): 
     mt.set("New") 
     e1 = Entry(master) 
     e1.pack() 
    def new_ok(self): 
     mt.set("OK") 
     #the next part is what I need help with 
     if (checks if button has been clicked) button has been clicked: 
      mt.set("#what it says in the entry box#") 

我该怎么做?我看过教程并阅读它们,但没有人明确承认如何检查按钮是否被按下并作出响应。

+0

它几乎一样,如果你想创建自己的事件循环,这是Tkinter的工作,不是你的。 Tkinter在这里有一个“不要打电话给我,我会给你打电话”的政策。你给它一个回调,并在正确的事件触发时调用它。 John Gaines Jr的答案中的链接显示了它是如何完成的。 – 2012-04-19 22:20:48

回答

2

如果问题是:“您如何更新Label小部件?”
然后答案是与小部件的configure方法。

# Tkinter in Python 2.7 & tkinter in 3.2 
import Tkinter as tk 

class GUI(tk.Tk): 
    def __init__(self): 
     tk.Tk.__init__(self) 

     bF = tk.Frame(self, bd=8, relief='sunken') 
     bF.pack(expand='true', fill='x') 
     changeButton = tk.Button(bF, text='Change', bd=4, fg='white', 
           relief='groove', activebackground='green', 
           command=self.change_label) 
     changeButton.pack() 

     self.entryLabel = tk.Label(self, text='Hello') 
     self.entryLabel.pack() 

     self.mEntry = tk.Entry(self, bd=4, relief='sunken') 
     self.mEntry.pack() 

    def change_label(self): 
     data = self.mEntry.get() 
     self.entryLabel.configure(text=data) 


gui = GUI() 
gui.mainloop() 

你会想让你的GUI像这个例子一样;
这样你就可以使用自我。前缀来引用在另一种方法中创建的小部件。

在你的例子中,你可能会说'mt'是control variable
答案仍然是做一个班级,这样你就可以使用自己。字首。

控制变量可能是没有必要的,除非你想
标签,你改变了输入控件的内容进行更新:

import Tkinter as tk 

class GUI(tk.Tk): 
    def __init__(self): 
     tk.Tk.__init__(self) 

     bF = tk.Frame(self, bd=8, relief='sunken') 
     bF.pack(expand='true', fill='x') 

     var = tk.StringVar() 
     var.set('Hello') 
     entryLabel = tk.Label(self, textvariable=var) 
     entryLabel.pack() 

     mEntry = tk.Entry(self, bd=4, relief='sunken', textvariable=var) 
     mEntry.pack() 

gui = GUI() 
gui.mainloop() 
2

我不是Tkinter wiz,但我在Tkinter的模块文档中看到的第一件事情之一是A Simple Hello World Program,它有你的问题的答案。 (与大多数GUI工具包一样,答案是回调函数或事件处理函数。)成员函数say_hiHello按钮的回调函数。

+0

谢谢,但我也想知道如何在不同的函数中定义条目时如何调用新函数中的条目 – udpatil 2012-04-20 00:01:30

相关问题