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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top