¿Cómo crear etiquetas de texto con cuadros de fondo?

13

Estoy tratando de crear algunas etiquetas personalizadas para entidades de puntos en una capa de vector de puntos QGIS, y quiero escribir un complemento de Python para hacerlo. Necesitamos que nuestras etiquetas se presenten con rectángulos teñidos de color detrás de ellos (¡o si no!). Las etiquetas son cadenas largas y se crean utilizando expresiones y condicionales del motor de etiquetado.

Pensé que la forma más fácil sería dejar que el usuario configurara las etiquetas para la capa activa de la manera que quisiera, y luego dejar que mi complemento pueda tomar el texto de la etiqueta de las entidades en la capa y usar las cadenas de texto para crear cuadros. Mi problema es que no puedo encontrar una manera de acceder a esas cadenas de texto en la API QGIS. ¿Cómo se almacenan las cadenas de etiquetas generadas por el motor de etiquetado en QGIS y cómo puedo acceder a ellas?

MonstruoSeta
fuente
1
Por etiquetas, ¿quiere decir las etiquetas para las entidades de puntos individuales?
RK
Si. Y quiero que se haga a nivel de capa, no a nivel de compositor de impresión. Traté de generar automáticamente cuadros de texto de llamada porque no me di cuenta de que eran características del compositor de impresión, y eso fue realmente feo.
MonsterMushroom
1
¿Has pensado en un fuerte color de búfer detrás del texto? Lo hice en un trabajo. Por otro lado, le dije al cliente que no era una opción ... Parece una solicitud común ...
Willy
1
El fuerte buffer de color es mi solución actual. Sin embargo, el cliente tenía los cuadros (usando un script) en su implementación de ArcGIS, y quieren ver lo mismo en QGIS. (Estamos tratando de cambiar los sistemas). Mi respuesta actual es que esta no es una opción, pero que nunca es una respuesta divertida, y realmente me gustaría sacar algo de mi bolsillo. Además, los cuadros alrededor de las etiquetas deberían ser algo que podamos hacer. Simplemente tiene sentido.
MonsterMushroom
Creo que la respuesta a esto será que una vez que las etiquetas son generadas por el motor de etiquetado y renderizadas en el lienzo del mapa, se guardan como vectores svg y no como cadenas y, por lo tanto, son irrecuperables. Lo vi en un blog pero aún no he podido (tuve tiempo de) confirmarlo, por lo que no es una respuesta oficial. (Además, he aprendido que las etiquetas de escudo se están trabajando como un complemento para el tan esperado 2.0)
MonsterMushroom

Respuestas:

1

En QGIS 2.0, puede crear rectángulos de fondo, óvalos o formas SVG personalizadas sin la necesidad de un complemento. Simplemente vaya a Propiedades de capa | Etiqueta | Sección de antecedentes.

ingrese la descripción de la imagen aquí

Si quieres codificar algo. Este podría ser un punto de partida: http://doc.qgis.org/api/qgspallabeling_8cpp_source.html#l04333

bajo oscuro
fuente
¡Encantador! 2.0 va a ser cinco tipos de genial. Lo esperamos con la respiración contenida.
MonsterMushroom