事件处理模型
GUI组件根据用户的交互情况生成事件
异步事件驱动的程序:程序将事件绑定到图形组件上,并实现了事件的处理程序(回调函数)来处理GUI事件
文本框
用于输入文本,程序员用来显示文本
通过Entry类创建
用户按下Enter键触发Entry组件的<Return>事件
1 # SimpleEntry.py 2 # Entry compnents and event binding demonstration 3 4 from Tkinter import * 5 from tkMessageBox import * 6 7 class EntryDemo( Frame ): 8 """ Demonstrate Entrys and Event binding """ 9 10 def __init__(self): 11 """ Create, pack and bind events to four Entrys """ 12 13 Frame.__init__( self ) 14 self.pack( expand = YES, fill = BOTH ) 15 self.master.title( "Testing Entry Components" ) 16 self.master.geometry( "325x100" ) # width x length 17 18 self.frame1 = Frame( self ) 19 self.frame1.pack( pady = 5 ) 20 21 self.text1 = Entry( self.frame1, name = "text1" ) 22 23 # bind the Entry component to event 24 self.text1.bind( "<Return>", self.showContents ) 25 self.text1.pack( side = LEFT, padx = 5 ) 26 27 self.text2 = Entry( self.frame1, name = "text2" ) 28 29 # insert text into Entry component text2 30 self.text2.insert( INSERT, "Enter text here" ) 31 self.text2.bind("<Return>", self.showContents ) 32 self.text2.pack( side = LEFT, padx = 5 ) 33 34 self.frame2 = Frame( self ) 35 self.frame2.pack( pady = 5 ) 36 37 self.text3 = Entry( self.frame2, name = "text3" ) 38 self.text3.insert( INSERT, "Uneditable text field" ) 39 40 # prohibit user from altering text in Entry component text3 41 self.text3.config( state = DISABLED ) 42 self.text3.bind("<Return>", self.showContents ) 43 self.text3.pack( side = LEFT, padx = 5 ) 44 45 # text in Entry component text4 appears as * 46 self.text4 = Entry(self.frame2, name = "text4", show = "*" ) 47 self.text4.bind("<Return>", self.showContents ) 48 self.text4.pack( side = LEFT, padx = 5 ) 49 50 def showContents( self, event ): 51 """ Display the contents of the Entry """ 52 53 # acquire name of Entry component that genereated event 54 theName = event.widget.winfo_name() 55 56 # acquire contents of Entry component that generated event 57 theContents = event.widget.get() 58 showinfo( "Message", theName + ":" + theContents) 59 60 61 demo = EntryDemo() 62 63 demo.mainloop()
时间: 2024-11-01 14:35:38