作者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)