我第一次尝试使用Tkinter,并且在点击按钮时尝试调用函数。这是我的代码的一部分。 mt指的是我通过将标签附加到标签上而制作动态的标签,以便我可以更改标签所说的内容。我希望用户能够在输入框中键入内容,点击按钮,然后将标签更改为键入的内容。
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 :(得分:2)
我不是Tkinter wiz,但我在Tkinter的模块文档中看到的第一件事就是A Simple Hello World Program,它可以回答你的问题。 (与大多数GUI工具包一样,答案是回调或事件处理函数。)成员函数say_hi
是Hello
按钮的回调。
答案 1 :(得分: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 答案仍然是上课,这样你就可以使用自我。前缀。
除非你想要,否则可能没有必要使用控制变量 更改Entry小部件内容时要更新的标签:
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()