Bonjour,

Dans le cadre d'un projet universitaire, je dois réaliser, notamment, une interface graphique permettant de dessiner à la souris, avant d'effectuer un traitement sur le dessin.

Je suis parvenu à utiliser un QWidget pour dessiner, mais le problème que j'ai est que le tracé n'est pas en continu, c'est-à-dire que les points que je trace ne sont pas contigus.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import sys, random
from PyQt4 import QtGui, QtCore
 
class Example(QtGui.QWidget):
 
	def __init__(self):
		super(Example, self).__init__()
		self.pointsList = []#liste des points à tracer
		self.isDrawing = 0#variable de contrôle
		self.initUI()
 
	def initUI(self):	  
		self.setGeometry(300, 300, 280, 170)
		self.setWindowTitle('Points')
		self.show()
 
	def mousePressEvent(self, event):
		self.isDrawing = 1
		self.pointsList = []
 
	def mouseReleaseEvent(self, event):
		self.isDrawing = 0
 
	def mouseMoveEvent(self, event):
		if self.isDrawing == 1:
			self.pointsList.append(event.pos())#on ajoute le point
			self.repaint()#on redessine
 
	def paintEvent(self, e):
		qp = QtGui.QPainter()
		qp.begin(self)
		for point in self.pointsList:
			qp.drawPoint(point)
		qp.end()
 
def main():	
	app = QtGui.QApplication(sys.argv)
	ex = Example()
	sys.exit(app.exec_())
 
if __name__ == '__main__':
	main()
Est-ce que j'utilise la bonne classe, avec QWidget, ou bien n'est-ce pas la plus appropriée pour faire ce que je souhaite ?

Que me conseillez-vous pour résoudre mon problème ?

Je précise que je suis débutant en Python et en PyQt.

Merci d'avance,

Jérémy