저는 파이썬을 처음 사용합니다. 고정 좌표계로 폴리곤과 원을 그렸습니다. 이제이 다각형과 원을 마우스를 사용하여 창상의 다른 위치로 이동하고 싶습니다. 내가 어떻게 할 수 있는지 안내해 주시겠습니까?Python PyQt : 마우스로 위젯을 창에서 어떻게 움직일 수 있습니까?
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MyFrame(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self)
def paintEvent(self, event=None):
paint=QPainter(self)
paint.setPen(QPen(QColor(Qt.green).dark(150),1,Qt.SolidLine))
segColor=QColor(Qt.green).dark(150)
paint.setBrush(segColor)
paint.setBrushOrigin(QPoint(225,225))
polygon=QPolygon([QPoint(250,175), QPoint(265,175), QPoint(250,190), QPoint(265,190),QPoint(250,175)])
paint.drawPolygon(polygon)
paint.setPen(QPen(QColor(Qt.red),1,Qt.SolidLine))
paint.setBrush(QBrush(Qt.NoBrush))
polygon1=QPolygon([QPoint(250,300), QPoint(250,500), QPoint(350,500), QPoint(350,300)])
paint.drawPolyline(polygon1)
paint.drawEllipse(50,50,50,50)
app=QApplication(sys.argv)
f=MyFrame()
f.show()
app.exec_()
귀한 답장을 보내 주신 Eric에게 감사의 말씀을 전합니다. 그러나 이로 인해 부분적으로 문제가 해결되었습니다. 실제로 저는 폴리 라인을 사용하여 그려지는 물 탱크를 그려야합니다. 왜냐하면 저는 3면이 필요하고 꼭지가 필요하지 않기 때문입니다. 그리고 'QGraphicsScene'객체에는 'addPolyline'속성이 없습니다. 둘째, 저는 제 가치에 따라 탱크를 채우고 싶습니다. 물 탱크를 채우려면 어떻게해야합니까 (파란색으로 볼 수 있습니까)? – mrtak
장면의 오브젝트를 제어 할 수 있습니다. 단순한 모양 오브젝트 일 필요는 없습니다. 필자는 작성을 지원하는 QPainterPath를 정의 할 수있는 QGraphicsPathItem을 살펴 보는 것으로 시작합니다. 그보다 복잡한 항목의 경우, 닫히고 자신 만의 paintEvent 메소드를 구현하는 모든 QGraphicsItem을 서브 클래스화할 수 있습니다. –
경로를 추가하는 바로 가기가 QGraphicsScene.addPath입니다. –