在屏幕上跟踪鼠标的移动(形状)-Python

时间:2019-06-16 10:34:01

标签: python tracking mousemove

我试图在单击鼠标右键的同时跟踪鼠标在屏幕上的运动,并将该运动保存为2D形状(.dwg或其他形状)到新文件中。解决此问题的最佳方法是什么?

到目前为止,我已经研究了PyMouse,并简要地研究了PyGame。但是,由于我对编码的了解仍然有限,所以我不了解如何实际使用它们并创建正在运行的应用程序。

我已经尝试了这些简单的示例来实现PyMouse(https://github.com/pepijndevos/PyMouse/wiki/Documentation)的基本功能,但是不知道如何从这里开始跟踪用户的鼠标移动。

对此我将不胜感激!

1 个答案:

答案 0 :(得分:1)

对于鼠标跟踪事件,可以使用if event.type == pygame.MOUSEBUTTONDOWN:语句。

下面的完整代码:

import pygame,sys,numpy
pygame.init()
display = (1500, 900)
screen = pygame.display.set_mode(display)
pygame.display.set_caption("Shape")

draw = False
size = (15,15)
run = True
shape = []

while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                run = False
        if event.type == pygame.MOUSEBUTTONDOWN and event.button == 3: #Detect right-click; left-click is 1
            draw = True
        if event.type == pygame.MOUSEBUTTONUP and event.button == 3: #Detect release right-click
            draw = False
            #Here to save the file of 2d shape
            shape = []



    screen.fill((0,0,0))
    #Draw the shape
    if draw == True:
        shape.append(pygame.mouse.get_pos())
        for i in shape:
            screen.fill((255,255,255), (i, size))

    pygame.display.flip()

pygame.quit()
sys.exit()

我认为有一种方法可以将列表另存为2d文件。查看https://gis.stackexchange.com/questions/52705/how-to-write-shapely-geometries-to-shapefiles,它可能会对您有所帮助。只需在#Here to save the file of 2d shape注释之后添加保存文件过程即可。

我将处理保存文件部分,但这是我目前所能获得的最好的结果。