我在PyQt4中使用PyQt4,在其中剪切图像。我需要QRect中所有的坐标值,如x1,y1,x2,y2。下面是用于剪切图像的鼠标事件的几个功能。
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)如果我打印rect,我得到的输出是
PyQt4.QtCore.QRect(51, 122, 131, 185)我感兴趣的是将这些QRect值保存在list中以供进一步处理。
发布于 2017-03-25 06:55:21
如果您有以下对象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_())发布于 2019-12-19 15:27:28
使用getRect()方法的QRect
from PyQt5.QtCore import QRect
rect = QRect(51, 122, 131, 185)
print(rect.getRect())打印(51, 122, 131, 185)
https://stackoverflow.com/questions/43013377
复制相似问题