tkinter之旅(二)
- tkinter事件绑定的一般方法:
def handler(event):
assert isinstance(event, Event)
print(event.x, event.y)
def main():
label = Label(text='Code complete!', width=20,
height=2, font=('', 20, 'normal'))
label.pack(padx=10, pady=10)
label.bind('<Button-1>', handler)
mainloop()
可以用于捕捉的事件(不完整):
<KeyPress>
:按键按下事件,可以使用event.char
获得ASCII字符。<B1-Motion>, <B2-Motion>, <B3-Motion>
:鼠标按下后拖拽事件。<Button-1>, <Button-2>, <Button-3>
:鼠标单击事件。<Double-1>, <Double-2>, <Double-3>
:鼠标双击事件。<Return>, <Up>
等按键事件。<ButtonRelease>
:按钮释放事件。<ButtonPress>
:按钮按下事件。<Motion>
:鼠标移动事件。<Enter>, <Leave>
进出组件事件。<Configure>
:当窗口大小、位置等参数变化时触发的事件。<Destroy>
:当窗口销毁时触发的事件。<FocusIn>
和<FocusOut>
:获得焦点或者失去焦点会触发的事件。<Map>
和<unMap>
:窗口打开和最小化事件。<Escape>,<BackSpace>, <Tab>
等特殊按键按下事件。<Down>, <Left>, <Right>
方向键事件。
Message
组件可以简单地显示多行文本,拥有许多配置项。
# Message组件显示文本示例
def main():
msg = Message(font=('Droid Sans', 10, ''), bg='grey', fg='white')
msg.pack(padx=5, pady=5, expand=YES, fill=BOTH)
Button(text='打开', command=lambda: msg.config(text=askopenfile().read())).pack(anchor=S)
mainloop()
main()