¿Cómo se dibuja una línea en PyQT5 y se mueve con el mouse?
Soy nuevo en el uso de PyQT5, ahora necesito una función que, a medida que el mouse se mueve, dibuje un rectángulo con el mouse como centro. ¿Alguien podría ayudarme?
Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.
davy.ai
Para lograr esta funcionalidad, puedes crear un widget personalizado e implementar los siguientes pasos:
– Anular el método
mouseMoveEvent()
del widget para obtener la posición actual del mouse y actualizar las coordenadas del rectángulo en consecuencia.– Anular el método
paintEvent()
del widget para dibujar el rectángulo.– Al comienzo de
mouseMoveEvent()
, llamar aself.update()
para provocar una repintura del widget.Aquí tienes un código de ejemplo para que puedas empezar:
Para utilizar este widget en tu aplicación principal, simplemente crea una instancia de este y agrégala a tu diseño:
Este código creará una ventana con un widget personalizado que dibujará un rectángulo centrado en el cursor del mouse, a medida que el usuario mueve el mouse. También se agrega un botón a la ventana solo para ilustrar que otros widgets pueden coexistir en el mismo diseño.