2017-04-21 1428 views
0

我想制作一个python脚本,在其中显示图像,然后最终用户可以通过单击两点在该图像上绘制箭头。用PyQt在图像上绘制线条

我希望该行是一个箭头,并将其显示在鼠标指针后面,直到用户第二次点击。

使用Python3,PyQt4,Ubuntu。

在此先感谢

回答

0

使用的paintEvent和QPainter的:

import sys 
from PyQt5.QtWidgets import * 
from PyQt5.QtGui import * 
from PyQt5.QtCore import * 

class Example(QWidget): 
    def __init__(self): 
     super().__init__() 
     self.setGeometry(30, 30, 500, 300) 

    def paintEvent(self, event): 
     painter = QPainter(self) 
     pixmap = QPixmap("myPic.png") 
     painter.drawPixmap(self.rect(), pixmap) 
     pen = QPen(Qt.red, 3) 
     painter.setPen(pen) 
     painter.drawLine(10, 10, self.rect().width() -10 , 10) 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    ex = Example() 
    ex.show() 
    sys.exit(app.exec_()) 
+0

谢谢!它适用于我,需要修改图像上的鼠标坐标。最后一件事......我如何在一端画箭头形状?因为我的目标是绘制箭头:) – f126ck

+0

我建议只在该行的末尾画一个三角形@ f126ck – Veltro

+0

谢谢!好吧,理解..但只是一件事。我正在编写一个更大的程序,提示用户自行绘制线条/箭头。用户单击起点,然后单击“矢量”行的结束点。我想提供一种机制,用户正在绘制,以便向他们反馈有关程序的实际工作情况。我想到了在鼠标指针坐标之后画线,并在第二次点击时将它永久绘制在图像上。 (为了理解我想实现的目标,在绘制一条线时想想MS Paint ...) – f126ck