QGraphicsItem UnSelect redibujo problema
-
22-09-2019 - |
Pregunta
Muy simple aplicación Qt GUI:
- En la escena He múltiples círculos implementado como QGraphicsItem
- boundingRect vuelve alrededor de la plaza este círculo.
- Método de 'forma' no se reemplaza.
El problema aparece cuando en la pintura () método que hemos añadido:
if (isSelected()) {
painter->drawRect(re);
}
La selección se dibuja bien, pero no causa deselección nuevo trazado. A nivel de registro que puedo ver que el tema realmente perdido bandera de la selección. Llamando a update () de itemChange también es inútil. Gracias de antemano por cualquier sugerencia.
Solución
Después de 10 días me volvió de nuevo a este problema y descubrió que mi QGraphicsItem construido con
setCacheMode(DeviceCoordinateCache);
¡DIOS MIO! estúpido error, cuando se eliminó esta línea (por defecto QGraphicsItem :: NoCache utiliza) la selección se vuelve a dibujar también.
Otros consejos
También puede tratar de cambiar la QGraphicsView por defecto :: MinimalViewportUpdate a FullViewportUpdate con setViewportUpdateMode (QGraphicsView :: FullViewportUpdate);
O puede llamar a la escena () -> actualización (); desde el punto de programar un repintado.
Uno de ellos se requería al menos cuando me quedé cambiar la bandera QGraphicsItem :: ItemHasNoContents en un artículo.