2017-03-25 6 views
0

私は画像を切り取っているPyQt4でQRubberBandを使用しています。 x1、y1、x2、y2などのQRectに存在するすべての座標値が必要です。以下は、画像を切り取るためのマウスイベントの機能です。私はRECT印刷する場合リストにQRectの値を格納する方法

def mousePressEvent(self, QMouseEvent): 
    self.origin = QMouseEvent.pos() 
    self.rubberband.setGeometry(QtCore.QRect(self.origin, QtCore.QSize())) 
    self.rubberband.show() 

def mouseMoveEvent(self, QMouseEvent): 
    self.x = int(QMouseEvent.x()) 
    self.y = int(QMouseEvent.y()) 
    text1 = str(self.x) 
    text2 = str(self.y) 
    print self.x,self.y 
    QtGui.QToolTip.showText(QMouseEvent.pos() , "X: "+text1+" "+"Y: "+text2,self) 
    if self.rubberband.isVisible(): 
     self.rubberband.setGeometry(QtCore.QRect(self.origin, QMouseEvent.pos()).normalized() & self.image.rect()) 

def cropImage(self,rect,QMouseEvent): 
    self.image = self.image.copy(rect) 
    self.pic.setPixmap(QtGui.QPixmap.fromImage(self.image)) 
    self.image.save(os.getcwd()+'/cropped.png') 
    self.update() 

def mouseReleaseEvent(self, QMouseEvent): 
    if self.rubberband.isVisible(): 
     self.rubberband.hide() 
     selected = [] 
     rect = self.rubberband.geometry() 
     print rect 
     self.cropImage(rect,QMouseEvent) 

、私は

PyQt4.QtCore.QRect(51, 122, 131, 185) 

私の興味として出力を取得していますが、更なる処理のためのリストにこれらのQRect値を保存することです。

+0

あなたはリスト – eyllanesc

+0

でそれを救うことができますリストし、2番目の要素を印刷します。 'QRect'オブジェクトがインデックス作成をサポートしていないためにエラーが発生する –

+0

2番目の要素はどういう意味ですか? – eyllanesc

答えて

0

あなたは以下の機能で各項目を取得することができますrect = QRect(x, y, w, h)次のオブジェクトを使用している場合:

x = rect.x() 
y = rect.y() 
w = rect.width() 
h = rect.height() 

例:私はそれを保存しようとした

from PyQt4 import QtCore, QtGui 
import sys 

app = QtGui.QApplication(sys.argv) 
rect = QtCore.QRect(51, 122, 131, 185) 
x = rect.x() 
y = rect.y() 
w = rect.width() 
h = rect.height() 
print(x, y, w, h) 
sys.exit(app.exec_()) 
+0

おかげで多くの助けになりました –

+0

私の答えが役に立ったら、 – eyllanesc

関連する問題