[問題] 如何使QtPainter不重繪

看板Python作者 (Arim5566)時間13年前 (2012/09/13 16:35), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
各位版友好 我想用滑鼠按一下就可以依照滑鼠目前位置畫出一個圓點出來 每次按滑鼠之後都會呼叫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)

09/14 00:35, , 1F
試試搭配 mousePressEvent 和 mouseReleaseEvent 抓滑鼠動作
09/14 00:35, 1F

09/14 00:39, , 2F
還有你要在哪種物件上畫點? QWidget 還是 QGraphicsView?
09/14 00:39, 2F
我是直接畫在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)
文章代碼(AID): #1GKPhiay (Python)
文章代碼(AID): #1GKPhiay (Python)