作者Arim (Arim5566)
看板Python
标题[问题] 如何使QtPainter不重绘
时间Thu Sep 13 16:35:52 2012
各位版友好
我想用滑鼠按一下就可以依照滑鼠目前位置画出一个圆点出来
每次按滑鼠之後都会呼叫repaint来呼叫paintEvent
def paintEvent(self, event):
print "paint event"
if mousePush == True:
qp = QtGui.QPainter()
qp.begin(self)
self.drawPoints(qp)
qp.end()
但每次执行paintEvent之後 ,之前画的东西都会消失(例如之前画的点)
如何使之前画的东西不会消失?
而QPainter.begin()又只能放在paintEvent里面@@
请问应该怎麽修改?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.169.131
※ 编辑: Arim 来自: 140.117.169.131 (09/13 18:58)
1F:→ cccx:试试搭配 mousePressEvent 和 mouseReleaseEvent 抓滑鼠动作 09/14 00:35
2F:→ cccx:还有你要在哪种物件上画点? QWidget 还是 QGraphicsView? 09/14 00:39
我是直接画在QWidget上
对了,我用QGraphicsView似乎没有办法跟painter搭在一起
画出来的东西都是空白的@@ 可是painter却是active
最近找到一个方法就是可以把之前画的点存起来,最後再paintevent重画
※ 编辑: Arim 来自: 140.117.169.131 (09/14 16:27)
※ 编辑: Arim 来自: 140.117.169.131 (09/14 18:48)
※ 编辑: Arim 来自: 140.117.169.131 (09/14 18:52)