我正在编写一个需要选择屏幕区域的应用程序。我需要将光标改为十字,然后在用户选择上绘制一个矩形。我搜索的第一件事是如何操作光标,我遇到了wxPython。有了wxPython,我可以很容易地在一个有面板的框架上做到这一点,问题是我需要窗口是透明的,这样用户可以在选择所需区域时看到他的屏幕,但是如果我使框架和面板对象透明,一切都会变得有问题。

所以,我对任何解决方案都持开放态度,要么使用wxPython,要么不使用它,因为我不知道自己是否正确使用了它。

我是Python新手,也不是英语母语,如果你听不懂,我很抱歉。

这是我编码的import wx

class SelectableFrame(wx.Frame):

c1 = None

c2 = None

def __init__(self, parent=None, id=-1, title=""):

wx.Frame.__init__(self, parent, id, title, size=wx.DisplaySize(), style=wx.TRANSPARENT_WINDOW)

self.panel = wx.Panel(self, size=self.GetSize(), style=wx.TRANSPARENT_WINDOW)

self.panel.Bind(wx.EVT_MOTION, self.OnMouseMove)

self.panel.Bind(wx.EVT_LEFT_DOWN, self.OnMouseDown)

self.panel.Bind(wx.EVT_LEFT_UP, self.OnMouseUp)

self.panel.Bind(wx.EVT_PAINT, self.OnPaint)

self.SetCursor(wx.StockCursor(wx.CURSOR_CROSS))

def OnMouseMove(self, event):

if event.Dragging() and event.LeftIsDown():

self.c2 = event.GetPosition()

self.Refresh()

def OnMouseDown(self, event):

self.c1 = event.GetPosition()

def OnMouseUp(self, event):

self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))

def OnPaint(self, event):

if self.c1 is None or self.c2 is None: return

dc = wx.PaintDC(self.panel)

dc.SetPen(wx.Pen('red', 1))

dc.SetBrush(wx.Brush(wx.Color(0, 0, 0), wx.TRANSPARENT))

dc.DrawRectangle(self.c1.x, self.c1.y, self.c2.x - self.c1.x, self.c2.y - self.c1.y)

def PrintPosition(self, pos):

return str(pos.x) + " " + str(pos.y)

class MyApp(wx.App):

def OnInit(self):

frame = SelectableFrame()

frame.Show(True)

self.SetTopWindow(frame)

return True

app = MyApp(0)

app.MainLoop()

python在屏幕上画画,屏幕上的Python绘图相关推荐

  1. python绘画_python学画画(上)

    下载W3Cschool手机App,0基础随时随地学编程 导语 本来想用神经网络让计算机学会画铅笔画和素描的,后来发现其实不用神经网络效果也还可以,那么系列上就从简单的入手! 先放图哈! 沙画: 铅笔画 ...

  2. python编程在哪里写程序-第一个Python程序——在屏幕上输出文本

    本节我将给大家介绍最简单.最常用的 Python 程序--在屏幕上输出一段文本,包括字符串和数字. Python 使用 print 函数在屏幕上输出一段文本,输出结束后会自动换行. 在屏幕上输出字符串 ...

  3. python oled库_在树莓派上使用 SSD1306 OLED 屏幕

    树莓派在许多使用场景下并不需要接一台专用显示器,如需要查看树莓派上的一些信息可以通过手机.电脑登录到树莓派上操作,但总归不够便利. 下面介绍两款 OLED 小屏(均为 SSD1306 芯片驱动)可以直 ...

  4. python基础编程:Python实现鼠标自动在屏幕上随机移动功能

    这篇文章主要介绍了Python实现鼠标自动在屏幕上随机移动功能,具有很好的参考价值,希望对大家有所帮助.还等什么?一起跟随小编过来看看吧 本来想控制鼠标自动移动防止公司电脑自动休眠的策略,然而,实现了 ...

  5. html文件设置成mac屏保,如何将视频设置为Mac上的屏幕保护程序 | MOS86

    尽管您可能已经在享受Mac上预装的屏幕保护程序,但现在您可以添加一种新的屏幕保护程序到Mac.您现在可以将视频添加为屏幕保护程序. 输入SaveHollywood,一个Mac应用程序,允许您将视频设置 ...

  6. 如何在 Mac 上录制屏幕?mac录屏教程分享

    您可以为整个屏幕或屏幕上的选定部分录制视频. 1.使用"截屏"工具栏 要查看"截屏"工具栏,请同时按下以下三个按键:Shift.Command 和 5.您将看到 ...

  7. 如何在 Mac 上录制屏幕

    参考:https://support.apple.com/zh-cn/HT208721 发现Mac自带的屏幕录制功能非常好用. 使用"截屏"工具栏 要查看"截屏" ...

  8. 如何把自己的苹果手机屏幕投射到电脑上

    苹果手机的价格之所以高,是因为它有它的优势所在,首先苹果手机比安卓方便,而且手机运行流畅,特别是玩游戏.浏览网页都是极其的顺畅,苹果不是开源的,没有公开源码,安全性会高于安卓,性能也是高于安卓.但是如 ...

  9. 计算机游戏中屏幕上显示的,计算机显示器选择弧形屏幕还是直接屏幕?主游戏...

    图片1: 计算机显示器选择弧形屏幕还是直屏幕?主要游戏玩法 市场上常用的显示器具有1080p和2k分辨率. 不要考虑4k. 配置要求太高. 这取决于您的计算机配置. 如果您的游戏fps值可以达到100 ...

  10. mac 时间机器 禁用_如何在Mac上禁用屏幕时间通知

    mac 时间机器 禁用 Screen Time on Mac is a handy way to keep track of your app usage and restrict content f ...

最新文章

  1. 解决Linux CENTOS服务器 tree命令出现乱码 解析原因
  2. Windows下编辑的(脚本)文本copy到linux下带个^M结尾
  3. 面向特定专业领域的计算机,大学计算机文化基础考试题(本科)基础知识部分
  4. 把字符串分隔成多行的多种方法实践
  5. 包管理工具conda极简教程
  6. linux rkt命令,rkt 1.13.0发布,CoreOS的容器引擎
  7. iStat Menus 6.51 mac中文版
  8. SAI2.0绘画软件中文版(已测可用)
  9. [Python]经纬度转换
  10. 域名网址被微信屏蔽的解决方案微信域名网址被屏蔽了红了如何继续使用
  11. 怎么查看电脑开机记录
  12. PHP涉及的所有英文单词
  13. 017~022 函数 课后练习题
  14. matlab 热图,基于表格数据创建热图
  15. 非递归实现二叉树结点的遍历
  16. SkyLight 添加LightingChannelMask功能
  17. 小队pkc++_骑士小队2人金属第一印象
  18. 丁达尔效应产生的原因_详细解读什么是丁达尔现象
  19. 单片机出现正在检测目标单片机问题解决办法
  20. java中的双引号和单引号

热门文章

  1. 码上致富(APP+H5+小程序)淘宝客APP源码导购APP源码代理淘客APP源码
  2. NPI新产品导入管理--陈新春老师
  3. Oracle分析函数
  4. python求解二次规划问题
  5. 《人人都是产品经理》系列图书说明 Late2021
  6. SHA1hash算法C语言实现
  7. WindowsXP相关设置对应的注册表位置
  8. 用HackRF One模拟GPS信号
  9. 视频去水印,去水印微信小程序,短视频去水印微信小程序,免费去除视频水印
  10. 软考初级程序员主要考什么?如何复习?