1
import sys
from PyQt4 import QtGui,QtCore
x=-40
y=0
z=0
class MyView(QtGui.QGraphicsView):
def __init__(self):
QtGui.QGraphicsView.__init__(self)
self.scene=QtGui.QGraphicsScene(self)
self.item=[]
self.item2=[]
myLine=QtGui.QGraphicsLineItem(-10,20,20,20)
myLine.setCursor(QtCore.Qt.CrossCursor)
self.scene.addItem(myLine)
myLine.setFlag(QtGui.QGraphicsItem.ItemIsMovable)
self.setScene(self.scene)
def keyPressEvent(self,event):
global x
global y
global z
if event.key()==QtCore.Qt.Key_Left:
self.item.append(QtGui.QGraphicsRectItem(x,-10,40,40))
self.scene.addItem(self.item[y])
x=x+10
self.item[y].setFlag(QtGui.QGraphicsItem.ItemIsMovable)
y=y+1
elif event.key()==QtCore.Qt.Key_Right:
self.item2.append(QtGui.QGraphicsEllipseItem(x,-10,40,40))
self.scene.addItem(self.item2[z])
x=x+10
self.item2[z].setFlag(QtGui.QGraphicsItem.ItemIsMovable)
z=z+1
def mousePressEvent(self , event):
self._start=event.pos()
def mouseReleaseEvent(self,event):
start = QtCore.QPointF(self.mapToScene(self._start))
end = QtCore.QPointF(self.mapToScene(event.pos()))
self.scene.addItem(
QtGui.QGraphicsLineItem(QtCore.QLineF(start, end)))
if __name__=='__main__':
app=QtGui.QApplication(sys.argv)
view= MyView()
view.show()
sys.exit(app.exec_())
,你可以看到我不能夠移動,因爲鼠標按下事件的矩形和橢圓它畫一條線怎麼不理mousePressEvent超過GraphicsItem(PyQt4的)
我希望能夠到拖動以及當在圖形項按畫線
應該拖到其他明智的,應該吸取線