2017-04-21 131 views
0

私は画像を表示するPythonスクリプトを作って、エンドユーザは2点をクリックしてこの画像に矢印を描くことができます。PyQtを使って画像に線を引く

私は、線を矢印にして、ユーザーが2回目にクリックするまでマウスのポインタの後にそれを表示したいと思います。

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

ありがとう!!!わかりました。しかしただ一つのこと。私はより大きなプログラムを書いていますが、そこではユーザが自分自身を線や矢印で描くように促されます。ユーザーが開始点をクリックし、「ベクトル」線の終点をクリックします。ユーザーの横にあるメカニズムを提供して、プログラムの実際の作業についてのフィードバックを提供したいと考えています。私はcountinouslyマウスポインタの座標に続く行を描画し、2回目のクリック時に画像上に永久に描画することを考えました。 (私が達成したいことを理解するために、線を描いている間にMSペイントについて考える...) – f126ck

関連する問題