我是Python新手。我用固定的座標繪製了多邊形和圓。現在我想用鼠標將這個多邊形和圓形移動到窗口上的其他位置。請指導我如何做到這一點?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_()
謝謝埃裏克寶貴的回覆,但這解決了我的部分問題。其實我想畫一個水槽,我覺得會使用Polyline繪製,因爲我需要三面而不是頂面。而'QGraphicsScene'對象沒有屬性'addPolyline'。其次,我想根據自己的價值來裝滿坦克。我怎樣才能填滿水箱(讓我們看看藍色)? – mrtak
您可以控制場景中的對象 - 它們不必是簡單的形狀對象。我首先看看QGraphicsPathItem,它允許你定義任何要繪製的QPainterPath,並支持填充。對於比這更復雜的項目,你可以繼承任何QGraphicsItem,讓你關閉並實現自己的paintEvent方法 –
Btw添加路徑的快捷方式是QGraphicsScene.addPath –