- Tkinter GUI Application Development Cookbook
- Alejandro Rodas de Paz
- 256字
- 2021-08-27 19:44:05
How to do it...
You can attach an event binding to a widget using the bind method. The following example binds some mouse events to a Frame instance:
import tkinter as tk class App(tk.Tk): def __init__(self): super().__init__() frame = tk.Frame(self, bg="green", height=100, width=100) frame.bind("<Button-1>", self.print_event) frame.bind("<Double-Button-1>", self.print_event) frame.bind("<ButtonRelease-1>", self.print_event) frame.bind("<B1-Motion>", self.print_event) frame.bind("<Enter>", self.print_event) frame.bind("<Leave>", self.print_event) frame.pack(padx=50, pady=50) def print_event(self, event): position = "(x={}, y={})".format(event.x, event.y) print(event.type, "event", position) if __name__ == "__main__": app = App() app.mainloop()
All events are handled by the print_event() method of our class, which prints the type of event and the position of the mouse in the console. You can try it out by clicking on the green frame with the mouse, and moving it around while it starts printing the event messages.
The following example contains an Entry widget with a couple of bindings; one for the event that gets triggered when the entry gets the focus, and another for all the key press events:
import tkinter as tk class App(tk.Tk): def __init__(self): super().__init__() entry = tk.Entry(self) entry.bind("<FocusIn>", self.print_type) entry.bind("<Key>", self.print_key) entry.pack(padx=20, pady=20) def print_type(self, event): print(event.type) def print_key(self, event): args = event.keysym, event.keycode, event.char print("Symbol: {}, Code: {}, Char: {}".format(*args)) if __name__ == "__main__": app = App() app.mainloop()
The first message this program will output is the FocusIn event when you set the focus on the Entry widget. If you try it out, you will see that it will also show the events of keys that do not correspond to non-printable characters, such as arrow keys or the return key.
- Java入門經(jīng)典(第6版)
- ASP.NET MVC4框架揭秘
- 小創(chuàng)客玩轉圖形化編程
- 控糖控脂健康餐
- jQuery從入門到精通 (軟件開發(fā)視頻大講堂)
- 教孩子學編程:C++入門圖解
- Modern JavaScript Applications
- Responsive Web Design by Example
- ArcGIS for Desktop Cookbook
- WordPress Search Engine Optimization(Second Edition)
- Instant GLEW
- C#程序開發(fā)參考手冊
- Azure for Architects
- Java EE互聯(lián)網(wǎng)輕量級框架整合開發(fā):SSM+Redis+Spring微服務(上下冊)
- Learning Ext JS(Fourth Edition)