IIC2233 / syllabus-2019-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🎉 🎊
43 stars 69 forks source link

usar paintEvent desde fuera #517

Closed acpopper closed 5 years ago

acpopper commented 5 years ago

Hola! Estoy usando Qpainter y todo lo que involucra para hacer la zona donde se juega, y ya logré hacer que se vea al inicio como debería verse el juego, y que además al hacer click sobre una linea se detecte la accion. Ahora mi duda es: intento llamar digamos algo como... qp = Qpainter, le seteo un lápiz de otro color para marcar la línea, despues qp.begin e intento usar una funcion que dibuja una sola línea sobre el tablero, pero no se pinta nada. Intenté agregar un self.update al final pero tampoco era la solución. Básicamente, como puedo pintar una linea con qpainter al activar algún evento como por ejemplo un click? (Tengo entendido que si se pinta sobre un QWidget si o si solo se pinta dentro del metodo paintEvent, pero no se ni se me ocurre como podría hacerlo) Gracias de antemano y perdón si no se entiende, no entiendo del todo QPainter

naquiroz commented 5 years ago

Hola! El QPainter es sólo una herramienta para pintar, pero en el momento que dejas de pintar, se borra todo lo que hayas pintado, dado que es un herramienta. Esto siempre es así, a menos que pintes sobre algo (como si fuera en la vida real). Para que lo que pintes permanezca, debes pintar sobre algún widget que herede de QPaintDevice.

Tip 1: QPixmap , QImage, QPicture, son algunos ejemplos. Tip 2: Muchos widgets tienen la posibilidad de colocarles y obtener su pixmap 👀.

Éxito con la tarea!