Cómo seleccionar un QGraphicsItem sin seleccionar todo el grupo (al que pertenece este artículo)

StackOverflow https://stackoverflow.com/questions/4047780

  •  27-09-2019
  •  | 
  •  

Pregunta

Me pregunto si es posible seleccionar el elemento que pertenece a un grupo, sin seleccionar todo el grupo.

Lo que está tratando de hacer un grupo de elementos, que se puede mover (todos los elementos se mueven juntos), pero ninguno de ellos no se puede mover de forma individual. Pero quiero también ser capaz de seleccionar elementos dentro de este grupo y luego hacer algo con ellos, como reordenar, borrar, cambiar su color, etc.

El otro problema es, no puede ser grupo de grupos. Deseo también será capaz de seleccionar estos grupos dentro del grupo de los padres. Estaba pensando que esto podría ser un problema, porque no somos capaces de determinar qué grupo de usuarios desea seleccionar. Para fines de demostración, supongamos que tenemos la escena de gráfica compuesta de los siguientes elementos:

Grupo A, que contiene el grupo B. El grupo B contiene 3 líneas. Si presiono haga doble clic en el grupo A, entonces soy capaz entonces de seleccionar el grupo B. Si presiono de nuevo doble clic en B, entonces soy capaz de seleccionar líneas dentro del grupo B. Al pulsar Esc hace opuesto como doble clic. El problema es que no tengo ni idea de cómo hacerlo, porque toda la selección se dirige a los padres, y de nuevo a todos sus hijos.

¿Fue útil?

Solución

No se puede utilizar QGraphicsItemGroup hacer esto porque selección de un tema en un grupo de forma automática selecciona todos los otros memebrs del grupo.

Me había subclase QGraphicsItem para crear una clase 'RootItem'. Esta clase contendría dos listas. Una de ellas es una lista de QGraphicsItems ordinarias que componen los elementos visuales del propio grupo, criaron a este RootItem. La otra lista es de otros RootItems que se criaron a ésta (por ejemplo, Grupo B).

Sólo tendría que asegurarse de que cuidadosamente controlados los elementos que se pueden seleccionar en cualquier momento y cómo se propagan las interacciones entre los elementos.

Espero que esto ayude.

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