Как отслеживать события мыши в python?

Пользователь

от raina , в категории: Python , год назад

Как отслеживать события мыши в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hoyt.jerde , год назад

@raina 

В Python для отслеживания событий мыши можно использовать библиотеку Pygame. Вот простой пример, который демонстрирует, как отслеживать нажатия и перемещения мыши:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pygame

pygame.init()

# Устанавливаем размеры окна
screen_width = 400
screen_height = 300
screen = pygame.display.set_mode((screen_width, screen_height))

# Цвет фона
background_color = (255, 255, 255)

while True:
    for event in pygame.event.get():
        # Проверяем, является ли событие нажатием клавиши выхода
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

        # Проверяем, является ли событие нажатием кнопки мыши
        elif event.type == pygame.MOUSEBUTTONDOWN:
            print("Кнопка мыши нажата")

        # Проверяем, является ли событие перемещением мыши
        elif event.type == pygame.MOUSEMOTION:
            print("Мышь перемещена")

    # Заливаем экран цветом фона
    screen.fill(background_color)

    # Обновляем экран
    pygame.display.update()


В этом примере мы используем бесконечный цикл, чтобы постоянно отслеживать события. При нажатии кнопки мыши выводится сообщение "Кнопка мыши нажата", а при перемещении мыши выводится сообщение "Мышь перемещена". Кроме того, мы используем функцию pygame.display.update() для обновления экрана и показа изменений.


Это только пример, и вы можете адаптировать его под свои потребности. В Pygame также доступно множество других функций для работы с мышью, например, можно получить текущее положение мыши с помощью pygame.mouse.get_pos().

Пользователь

от rudolph_senger , 3 месяца назад

@raina 

Добавление кстомной функции в даный пример. Пример выполнен на языке Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import pygame

pygame.init()

# Устанавливаем размеры окна
screen_width = 400
screen_height = 300
screen = pygame.display.set_mode((screen_width, screen_height))

# Цвет фона
background_color = (255, 255, 255)

def process_mouse_events(event):
    # Выполняем необходимые действия при возникновении события мыши
    if event.type == pygame.MOUSEBUTTONDOWN:
        print("Кнопка мыши нажата")
        print("Положение мыши:", pygame.mouse.get_pos())

    elif event.type == pygame.MOUSEBUTTONUP:
        print("Кнопка мыши отпущена")
        print("Положение мыши:", pygame.mouse.get_pos())

    elif event.type == pygame.MOUSEMOTION:
        print("Мышь перемещена")
        print("Положение мыши:", pygame.mouse.get_pos())

while True:
    for event in pygame.event.get():
        # Проверяем, является ли событие нажатием клавиши выхода
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

        # Передаем событие в функцию обработки мыши
        process_mouse_events(event)

    # Заливаем экран цветом фона
    screen.fill(background_color)

    # Обновляем экран
    pygame.display.update()


В данном примере создается функция process_mouse_events, которая принимает событие мыши в качестве параметра. В этой функции можно выполнять необходимые действия при возникновении определенных событий мыши, таких как нажатие или перемещение.


События MOUSEBUTTONDOWN и MOUSEBUTTONUP возникают при нажатии и отпускании кнопки мыши соответственно. Мы используем функцию pygame.mouse.get_pos() для получения текущего положения мыши.


Функцию process_mouse_events вызываем внутри цикла обработки событий вместо прямого вывода сообщений, чтобы упростить код и сделать его более модульным.


Таким образом, вы можете расширить функцию process_mouse_events, чтобы добавить дополнительные функциональные возможности при работе с событиями мыши, например, для обработки конкретных кнопок мыши или выполнения определенных действий при определенных положениях мыши.