Python中如何在屏幕上画图?
我要做一个鼠标手势的软件,发现不知道怎么像其他软件那样在屏幕上画出鼠标轨迹. 我想要做到以下 4 点:
- 不被覆盖
- 可以连在一起
- 可以调节颜色粗细
- 不显示窗体
就是不知道怎么做.
我试了一下海龟,发现会显示一个窗体.
试了一下 win32gui,发现不知道怎么调节粗细和颜色,而且..
这是用了 point
这是 lineto
而且搞完会因为刷新而消失
Python中如何在屏幕上画图?
挽尊
用Python在屏幕上画图,最直接的方法是使用 turtle 库(适合初学者和简单图形)或更强大的 pygame 库(适合游戏和复杂图形)。下面是两个最常用的方法:
1. 使用 turtle 库(内置,简单易学)
turtle 是Python标准库的一部分,它提供一个“海龟”在画布上移动来绘图。
import turtle
# 创建一个屏幕和一个海龟
screen = turtle.Screen()
screen.title("Turtle 绘图示例")
t = turtle.Turtle()
# 画一个正方形
for _ in range(4):
t.forward(100) # 向前移动100像素
t.right(90) # 右转90度
# 画一个圆
t.penup() # 抬起笔,移动时不画线
t.goto(150, 0) # 移动到新位置
t.pendown() # 落下笔
t.circle(50) # 画一个半径为50的圆
# 保持窗口打开,直到点击关闭
screen.mainloop()
2. 使用 pygame 库(功能强大,适合动态图形)
pygame 是一个流行的游戏开发库,可以完全控制像素级的绘图。
import pygame
import sys
# 初始化pygame
pygame.init()
# 设置窗口尺寸
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Pygame 绘图示例")
# 定义颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
# 主循环
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 用白色填充背景
screen.fill(WHITE)
# 画一个红色的矩形 (左上角x, 左上角y, 宽度, 高度)
pygame.draw.rect(screen, RED, (100, 100, 200, 150))
# 画一个蓝色的圆 (圆心x, 圆心y, 半径)
pygame.draw.circle(screen, BLUE, (400, 300), 75)
# 画一条线 (起点x, 起点y, 终点x, 终点y)
pygame.draw.line(screen, (0, 0, 0), (50, 500), (750, 500), 5)
# 更新显示
pygame.display.flip()
# 退出pygame
pygame.quit()
sys.exit()
总结:
turtle:适合教学、绘制分形或简单的几何图形,语法直观。pygame:适合需要实时交互、动画或更复杂图形应用的场景。
根据你的具体需求选择合适工具。
挽尊*2
。
pyqt
建议打开微软的文档了解一下 Win32 API,Python 只是封装了一下
楼主不嫌折腾可以试试 brlcad: https://brlcad.org/
python 库吗?
不是 是一个命令行的 cad 软件。。。。貌似我理解题目错误了 抱歉
#8 谢谢你的回答
用海龟画过圈圈诅咒过领导. 哈哈.
#10 这么厉害的吗
wxpython in action 这本书里有你这么一个例子,你可以网上找 pdf,好像在第 6 章还是第七章
<br>import wx<br>import time<br>app = <a target="_blank" href="http://wx.App" rel="nofollow noopener">wx.App</a>(False)<br>s = wx.ScreenDC()<br>s.Pen = wx.Pen("#FF0000")<br>s.DrawLine(60,60,120,120)<br><br>
用 wxpython
刚找到的, 问题是画完之后不知道怎么清除已经画上去的东西。

