¿Necesita un poco de ayuda con las clases de pintura Qt
Pregunta
Estoy tratando de escribir un programa de pintura (pintura donde cada vez se detecta un ratón de prensa / espera), pero estoy teniendo problemas para usar Qt QPainter . He leído la documentación en su sitio web y todavía estoy un poco perdido. Un enlace a un tutorial que no está en su sitio web sería bueno o tal vez explicarme cómo puedo lograr esto en Qt. La única cosa que he logrado hacer es puntos de pintura en un widget.
Solución
Compruebe el href="http://doc.trolltech.com/4.5/widgets-scribble.html" rel="noreferrer"> garabato ejemplo
reimplementar el evento de ratón
manipuladores para poner en práctica el dibujo, la
pintar controlador de eventos para actualizar el
la aplicación y el evento de cambio de tamaño
manejador para optimizar la aplicación de
apariencia. Además nos reimplementar
la estrecha controlador de eventos para interceptar
los estrechos eventos antes de terminar
la aplicación. El ejemplo también muestra cómo
QPainter utilizar para dibujar una imagen en bienes
tiempo, así como volver a pintar los widgets.
Otros consejos
Utilice la QtAssistant y vaya a la entrada en QPainter. Desde allí se puede ver los enlaces a programas de ejemplo utilizando las distintas funciones de QPainter, como éste: http://doc.trolltech.com/4.5/painting-basicdrawing.html
QtAssistant debe ser su principal fuente de recursos. Es bastante completo. Entonces, si eso no ayuda recomiendo los foros en QtCentre . Esos son algunos chicos con conocimientos.
Sólo puedo imaginar lo que es su problema, pero mi conjetura es que se está ejecutando en el viejo tema de la edad del hecho de que el paintEvent se utiliza para actualizar la página. La forma de implementar un programa de pintura sería la creación de una primera QPixmap o QImage como su búfer de dibujo. Luego pintar sobre ella en sus métodos de prensa ratón / mover / liberación. Cuando haya actualizado el buffer de dibujo, todo actualizado (y ser un buen chico e indicar el área en la necesidad de actualización). Esto dará lugar a una llamada a su método paintEvent, en la que sólo blit el rectángulo solicitado (QPaintEvent :: rect ()) a la pantalla.