【问题标题】:expanding the image viewer example of pyqt or QT扩展 pyqt 或 QT 的图像查看器示例
【发布时间】:2015-01-07 20:24:08
【问题描述】:

我正在尝试扩展 pyqt 图像查看器示例以具有绘制图像的功能
我添加了几个经过测试的函数,它们接受鼠标事件并在图像上绘制
在图像查看器示例中,我选择了我的画家在 imageLabel 的像素图上绘画

def mousMoveEvent(self,event):
画家 = QtGui.QPainter(self.imageLabel.pixmap()) Painter.setPen(QtGui.QPen (self.chosenColor,self.chosenWidth,Qt.solidLine,Qt.RoundCap,Qt.RoundJoin)) Painter.drawLine(self.laspoint,event.pos())

。 . .

问题是:它根本没有在 pixmap 上绘图.. 它显示图像、缩放、除了绘图不起作用之外的所有内容.. 我做错了什么吗?我已经尝试了3天没有结果。有人对此有更好的主意吗?
提前谢谢

【问题讨论】:

    标签: python qt pyqt


    【解决方案1】:

    首先捕获鼠标事件并使用打印语句显示结果,以确保您正确获取鼠标数据。下一步是使用鼠标数据和鼠标事件输入绘图例程。

    虽然它不包括接受鼠标输入,但这个tutorial on drawing in PyQt 应该为您指明使用 API 创建绘图的正确方向。尝试命令式绘图,即不基于鼠标输入并检查它是否正确显示。

    最后,您应该能够将两者结合在一起,使用鼠标事件和数据来驱动绘图例程。

    【讨论】:

    • 我已经这样做了,它会打印鼠标事件,并且会在其他窗口上绘制。画画没问题。但在图像查看器示例中,它不起作用,它不会覆盖标签的图像。
    • 我不认为 QLabel 是用于绘图画布的一个很好的基础,这不是它们的用途。尝试使用不同的小部件。
    • 我尝试了一个 Qwidget child ,但我找不到调整大小(或缩放)的好方法。它不像 Qlable 小部件那样灵活。你有更好的想法吗?
    【解决方案2】:

    我不知道这是否会有所帮助,但我已经设法使用 QLabel 和 QImage 使选择框显示一个小部件。基本上每次我对 QImage 进行更改时,我都必须将其重新设置为标签的图像:

    self.imgLabel.setPixmap( QPixmap.fromImage( self.image ) )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 2016-08-27
      相关资源
      最近更新 更多