Usando o QGIS (2.14), é possível, no formulário de dados, que um atributo tenha uma cor (ou outra formatação) com base em seu valor?
Por exemplo, se meus dados tiverem um campo 'qualidade' com valor 'bom' ou 'médio' ou 'ruim'. Gostaria que o campo no formulário de atributo fosse exibido em verde / laranja / vermelho, dependendo desse valor.
Eu ficaria feliz com uma solução alternativa - por exemplo, um símbolo ou ícone que aparece ao lado do campo, fundo colorido no campo e assim por diante.
É um prazer usar o QT Designer para criar o formulário de dados. É um prazer editar o formulário xml manualmente. Eu lutarei se a resposta for que eu preciso usar mais de uma linha ou duas do código Python, então provavelmente estou procurando respostas que não exijam isso.
Também preciso da formatação para mostrar se a camada está ou não no modo de edição (porque os dados principais que estou usando não serão editáveis).
EDIT: observe que estou procurando apenas soluções que funcionem para um formulário de dados QGIS, não na tabela de atributos e não nos dados exportados. O objetivo é tornar os dados o mais fácil de entender possível, para que um usuário que trabalha com a ferramenta de identificação possa ver / entender rapidamente as principais informações sobre um recurso mostrado no mapa. Os dados reais com os quais estou trabalhando são complexos e os usuários da linha de frente precisam ser auxiliados para entendê-los.
fonte
Respostas:
Se eu entendi muito bem, você pode fazer uma formatação da tabela de atributos usando as seguintes etapas:
"Test"
New Rule
"Field name" = 'Very High'
e, emBackground
seguida, escolha a cor desejada e pressioneDone
Aqui estão os resultados finais:
Estou usando o QGIS 2.14.17 LTR
fonte
Eu não tenho o conhecimento necessário para responder (ou a reputação de postar o link como um comentário), mas neste link https://nathanw.net/2011/09/05/qgis-tips-custom-feature-forms-with-python -logic / , Nathan Woodrow explica como isso pode ser feito (a parte de cores fica perto da parte inferior da página). Definitivamente, isso poderia ser feito, mas receio que envolva muito Python ....
fonte