current position:Home>Analysis of Python event mechanism
Analysis of Python event mechanism
2022-01-30 06:53:46 【Little cute in the circle of friends】
Little knowledge , Great challenge ! This article is participating in “ A programmer must have a little knowledge ” Creative activities .
Preface
We were right ahead Python GUI-TKinter library (Grid、Place、Pack) Layout manager 、Canvas Components 、Checkbutton Components 、Radio button Components etc. , Write in the form of building blocks GUI Program
The graphical interface we learned earlier , But these interfaces are not yet responsive to any user action , For example, click the button in the window , This button does not provide any response .
This is because the program does not bind any event handling for this component .
In this issue , We will learn Python GUI Summary of event processing knowledge points ,Let's go~
1. Overview of event handling
One GUI The whole application life cycle is in a message cycle (event loop) in , It waits for the event to happen , And deal with it accordingly .
Tkinter Provides a mechanism for handling related events , The handler function can be bound to each event of each control .
widget.bind(event,handler)
Copy code
If the relevant event occurs ,handler The function will be triggered , Event object event Will pass to handler function .
2. Event binding mode
- command Binding method
Button(root,command= EVENT)
Copy code
command Binding mode features
- The way is simple , Easy to use
- The program cannot create a specific event ( For example, the mouse moves 、 Key events ) Binding event handling method
- The program cannot get event related information
- bind() Method
bn = Button(root)
bn.bind('<Double-1>',EVENT)
Copy code
bind() The way
- The first parameter is event handling
- The second parameter is event handling
3. Mouse and keyboard events
event | explain |
---|---|
<Button-1> <ButtonPress-1> <1> |
Press the left mouse button .2 Represents the middle key ,3 Right click |
<ButtonPelease-1> |
Release the left mouse button |
<B1-Motion> |
Press and hold the left mouse button to move |
<Double- Button-1> |
Double left click |
<Enter> |
The mouse pointer enters a component area |
<Leave> |
Mouse pointer to a component area |
<MouseWheel> |
Scroll wheel |
<KeyPress-a> |
Press down a key ,a You can use another key instead of |
<KeyRelease-a> |
Release a key |
<KeyPress-A> |
Press down A key ( uppercase A) |
<Alt-KeyPress-a> |
Press at the same time alt and a,alt You can use ctrl and shift replace |
<Double-KeyPress-a> |
Two quick clicks a |
<Control-V> |
Ctrl and V The keys are pressed simultaneously ,V You can change to other key positions |
event Object common properties
name | explain |
---|---|
char | Key characters , Valid only for keyboard events |
keycode | Key code , Valid only for keyboard events |
keysym | Key name , Valid only for keyboard events |
num | Mouse button , Valid only for mouse events |
type | The type of event triggered |
widget | The component that caused the event |
width,height | The size of the changed component , only Configure It works |
x,y | Current mouse position , Equivalent to parent container |
x_root,y_root | Current mouse position , Equivalent to the entire screen |
summary
Current pair GUI Two methods of event binding are used to summarize , I hope you are doing GUI When programming , Recommended bind() The way
The above is the content of this issue , Welcome big guys to praise and comment , See you next time ~
copyright notice
author[Little cute in the circle of friends],Please bring the original link to reprint, thank you.
https://en.pythonmana.com/2022/01/202201300653443143.html
The sidebar is recommended
- [recalling the 1970s] using Python to repair the wonderful memories of parents' generation, black-and-white photos become color photos
- You used to know Python advanced
- Pyinstaller package Python project
- 2021 IEEE programming language rankings: Python tops the list!
- Implementation of Python automatic test control
- Python advanced: [Baidu translation reverse] graphic and video teaching!!!
- Do you know the fuzzy semantics in Python syntax?
- [Python from introduction to mastery] (XXVII) learn more about pilot!
- Playing excel office automation with Python
- Some applications of heapq module of Python module
guess what you like
-
Python and go languages are so popular, which is more suitable for you?
-
Python practical skills task segmentation
-
Python simulated Login, numpy module, python simulated epidemic spread
-
Python opencv contour discovery function based on image edge extraction
-
Application of Hoff circle detection in Python opencv
-
Python reptile test ox knife (I)
-
Day 1: learn the Django framework of Python development
-
django -- minio_ S3 file storage service
-
[algorithm learning] 02.03 Delete intermediate nodes (Java / C / C + + / Python / go)
-
Similarities and differences of five pandas combinatorial functions
Random recommended
- Learning in Python + opencv -- extracting corners
- Python beginner's eighth day ()
- Necessary knowledge of Python: take you to learn regular expressions from zero
- Get your girlfriend's chat records with Python and solve the paranoia with one move
- My new book "Python 3 web crawler development practice (Second Edition)" has been recommended by the father of Python!
- From zero to familiarity, it will take you to master the use of Python len() function
- Python type hint type annotation guide
- leetcode 108. Convert Sorted Array to Binary Search Tree(python)
- For the geometric transformation of Python OpenCV image, let's first talk about the extraordinary resize function
- leetcode 701. Insert into a Binary Search Tree (python)
- For another 3 days, I sorted out 80 Python datetime examples, which must be collected!
- Python crawler actual combat | using multithreading to crawl lol HD Wallpaper
- Complete a python game in 28 minutes, "customer service play over the president card"
- The universal Python praise machine (commonly known as the brushing machine) in the whole network. Do you want to know the principle? After reading this article, you can write one yourself
- How does Python compare file differences between two paths
- Common OS operations for Python
- [Python data structure series] linear table - explanation of knowledge points + code implementation
- How Python parses web pages using BS4
- How do Python Network requests pass parameters
- Python core programming - decorator
- Python Network Programming -- create a simple UPD socket to realize mutual communication between two processes
- leetcode 110. Balanced Binary Tree(python)
- Django uses Django celery beat to dynamically add scheduled tasks
- The bear child said "you haven't seen Altman" and hurriedly studied it in Python. Unexpectedly
- Optimization iteration of nearest neighbor interpolation and bilinear interpolation algorithm for Python OpenCV image
- Bilinear interpolation algorithm for Python OpenCV image, the most detailed algorithm description in the whole network
- Use of Python partial()
- Python game development, pyGame module, python implementation of angry birds
- leetcode 1104. Path In Zigzag Labelled Binary Tree(python)
- Save time and effort. 10 lines of Python code automatically clean up duplicate files in the computer
- Learn python, know more meat, and be a "meat expert" in the technical circle. One article is enough
- [Python data structure series] "stack (sequential stack and chain stack)" -- Explanation of knowledge points + code implementation
- Datetime module of Python time series
- Python encrypts and decrypts des to solve the problem of inconsistency with Java results
- Chapter 1: introduction to Python programming-4 Hello World
- Summary of Python technical points
- 11.5K Star! An open source Python static type checking Library
- Chapter 2: Fundamentals of python-1 grammar
- [Python daily homework] day4: write a function to count the number of occurrences of each number in the incoming list and return the corresponding dictionary.
- Python uses turtle to express white