我正在学习Python,我已经有了基本的概念,并且已经有了一些命令行程序。我现在正在学习如何用Tkinter创建gui。
我创建了一个简单的GUI来接受来自Entry
小部件的一些用户信息,然后,当用户单击submit时,它应该会弹出一个对话框。
对话框应要求输入名和姓。
问题是,当用户单击提交时,我不知道如何处理事件。
这是我的代码:
from Tkinter import *
class GUI(Frame):
def __init__(self,master=None):
Frame.__init__(self, master)
self.grid()
self.fnameLabel = Label(master, text="First Name")
self.fnameLabel.grid()
self.fnameEntry = Entry(master)
self.fnameEntry.grid()
self.lnameLabel = Label(master, text="Last Name")
self.lnameLabel.grid()
self.lnameEntry = Entry(master)
self.lnameEntry.grid()
self.submitButton = Button(self.buttonClick, text="Submit")
self.submitButton.grid()
def buttonClick(self, event):
""" handle button click event and output text from entry area"""
pass
if __name__ == "__main__":
guiFrame = GUI()
guiFrame.mainloop()
我找到了一个很好的引用,叫做^{} ,我把它删掉了一点。我试着让它符合你的要求。
您应该指定一个处理程序或一个函数,单击该按钮时将调用该函数。我可以将函数的名称(而不是调用函数)分配给按钮的属性
command
来完成这个任务。例如:
在将
buttonClick
指定为self.submitButton
的command
属性时,请注意缺少()
。注意,在处理程序/函数
buttonClick()
中不需要第二个名为event
的参数。你已经有了你的事件功能。只需将代码更正为:
这与@Freak的答案相同,只是
buttonClick()
方法现在在类__init__
方法之外。这样做的好处是,您可以通过编程方式调用操作。这是OOP编码GUI中的常规方法相关问题 更多 >
编程相关推荐