Como pode deixar o QT gráfico ver a estrutura suportar camadas personalizadas
-
27-09-2019 - |
Pergunta
Os quadros de exibição de gráficos do QT são muito poderosos, mas não encontrei uma maneira de suportar camadas personalizadas. No QT, existe um QGraphicsScene :: ItemLayer, mas o QGraphicsScene renderiza todos os itens nessa camada. Quero gerenciar os itens com várias camadas, assim como o Illustrator e o CorelDraw. Todo o item somente na camada atual receberá o evento, será selecionado ou obterá o foco principal etc. Outras camadas (não camada atual) não receberão todo o evento de cena. A maioria dos motivos do uso de camadas é que eu poderia catalogar um grande número de itens com mais clareza. E sem precisar de eventos de transferência para todos os itens de camadas, acho que as estruturas gráficas serão mais eficientes. A última pergunta, o QGraphicsView suporta cenas gráficas empilhadas ao servidor de renderização ao mesmo tempo? Se o suporte, acho que as "camadas personalizadas" podem ser resolvidas dessa maneira. Muito obrigado!
Solução
Eu posso ver duas maneiras de alcançar as camadas de itens:
- Você pode usar
QGraphicsItemGroup
para agrupar itens. - Ou colocar itens da mesma "camada" em um pai QGraphicsItem que não traça nada.