Existe uma maneira de adicionar uma etiqueta de usuário atual ao compositor de impressão no QGIS.
Eu pensei que poderia haver algo semelhante ao formato $ CURRENT_DATE disponível.
Isso seria em um ambiente Windows.
Existe uma maneira de adicionar uma etiqueta de usuário atual ao compositor de impressão no QGIS.
Eu pensei que poderia haver algo semelhante ao formato $ CURRENT_DATE disponível.
Isso seria em um ambiente Windows.
Respostas:
Atualmente, essa é uma solicitação de recurso não atendida (consulte o recurso 1385 ).
Você pode adicionar suas idéias para novos 'tokens' (ou 'campos', conforme eles são identificados na solicitação). Lembre-se de incluir opções de formatação recomendados conforme as classes do Qt para o tipo de dados , como tem sido feito com a sintaxe $CURRENT_DATE(yyyy-MM-dd)
, que é resolvido usando QDate::currentDate().toString( formatText )
e QDate classe string formatação .
No entanto, existem soluções melhores do que tentar implementar todos os tipos de tokens que os usuários possam precisar ou solicitar (que pode ser uma lista que se expande).
Atualmente, existem pelo menos dois meios para implementar uma solução mais robusta:
A) O texto da etiqueta é opcionalmente gerado usando o Editor de Expressão QGIS
Atualmente, este é o método usado no mecanismo de rotulagem avançado ...
Como os rótulos do Composer não são relativos à fonte de dados de uma camada de mapa, a seção Fields and Values
precisa ser substituída e preenchida com tokens de impressão mais apropriados, como nome do projeto, título, projeção, usuário etc. (as funções de data já estão no mestre ramificações). Felizmente, tem havido trabalho dos desenvolvedores para tornar relativamente "fácil" adicionar novas seções de expressão, embora ainda seja necessário algum trabalho. Também seria necessário trabalho adicional para acomodar novos tokens.
B) O texto do rótulo (ou tokens) é opcionalmente o resultado do snippet (s) do Python
Embora não seja tão amigável quanto a solução Editor de Expressão, uma vez que requer uma compreensão do Python, a implementação de um desses recursos possivelmente exigiria apenas um único esforço de desenvolvimento. Então, qualquer aspecto textual de um projeto QGIS, incluindo seus vários itens do Composer , disponíveis via API do PyQGIS (por exemplo, Python Console), pode ser acessado, formatado e enviado para o texto.
Os trechos do Python podem ser agrupados em tokens individuais e incorporados no texto atual da caixa de edição de texto ou contidos em uma caixa de edição de texto separada na GUI, ativada pela caixa de seleção. Por motivos de segurança, o código provavelmente não seria executado automaticamente no lançamento do Composer (poderia ser uma opção para permitir sempre).
A abordagem de caixa de edição de texto separada permitiria a validação de código Python e a codificação de funções Python nomeadas especificamente, por exemplo, o seguinte snippet:
import getpass
from qgis.core import *
def pytoken_user():
return getpass.getuser()
def pytoken_title():
return QgsProject.instance().title()
substituiria qualquer número de tokens no texto nomeados $pytoken_user
ou $pytoken_title
.
Ambas as soluções acima são consideravelmente mais extensíveis do que a implementação de tokens individuais em linha no código fonte do QGIS. Também pode haver outras ou melhores soluções.
O Dr. Hugentobler recentemente reformulou o Compositor de Impressão na filial principal do QGIS, portanto agora é o momento ideal para solicitar esses recursos de rotulagem para a próxima versão do QGIS . Vou adicionar uma solicitação de recurso para esses dois o mais rápido possível.