一口快乐水 2017-05-17 13:51 采纳率: 0%
浏览 4447

PyQt5如何获取鼠标处图片像素

如题,我搜到了PyQt4的写法,想改成5的,但是5的函数变了,不太会,不知道5里鼠标处的Wid怎么获取?
这个是4的实现方法
PS:5不支持QPixmap.grabWindow,改成了Qscreen.grabWindow,
然后第一个参数Wid用QApplication.desktop().winId()也无法获取了,暂时还没有找到获取方式

if event.buttons() & Qt.LeftButton:  
   pointX = event.globalX()
   pointY = event.globalY()
   # img is QImage type
   img = QPixmap.grabWindow(
           QApplication.desktop().winId()).toImage()
   rgb = img.pixel(pointX, pointY)
   #十进制
   red10 = QtGui.qRed(rgb)
   green10 =QtGui.qGreen(rgb)
   blue10 = QtGui.qBlue(rgb)
   color10="("+str(red10)+","+str(green10)+","+str(blue10)+")"
   #十六进制
   #print str(hex(red10))
   red16=str(hex(red10))[2:]
   green16=str(hex(green10))[2]
   blue16=str(hex(blue10))[2:]
   color16=red16+green16+blue16
   #print color16
   print "(%s,%s) = %s (%s,%s,%s)" % (pointX, pointY, color16,red10, green10, blue10)
   self.label.setText("(%s,%s) = %s (%s,%s,%s)" % (pointX, pointY, color16,red10, green10, blue10))
#该片段来自于http://outofmemory.cn


代码来源
http://outofmemory.cn/code-snippet/12666/PyQt4-get-screen-position-color

  • 写回答

1条回答 默认 最新

  • 一去丶二三里 C++ 领域优质创作者 2017-12-18 06:06
    关注

    您需要创建 QScreen 对象,并进行初始化(例如:QtGuiApplication.primaryScreen()),然后抓取屏幕:

    screen.grabWindow(QApplication.desktop().winId())
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀