C'è un modo per aggiungere un'etichetta di "utente corrente" al compositore di stampa?


11

Esiste un modo per aggiungere un'etichetta utente corrente al compositore di stampa in QGIS.

Ho pensato che potrebbe esserci qualcosa di simile al formato $ CURRENT_DATE disponibile.

Questo sarebbe in un ambiente Windows.


1
"$ CURRENT_DATE (yyyy-MM-dd)" si è rivelato molto utile e l'ho incluso in molti dei miei modelli di compositore. Ci sono più di questi comandi disponibili? Ti piace mostrare automaticamente il nome del mio progetto o un determinato nome di livello, ecc.?
Sanderka,

Risposte:


8

Attualmente, si tratta di una richiesta di funzionalità non soddisfatta (vedere Funzione # 1385 ).

Potresti aggiungere le tue idee per nuovi "token" (o "campi" man mano che vengono visualizzati nella richiesta). Ricorda di includere le opzioni di formattazione consigliate secondo le classi Qt per il tipo di dati , come è stato fatto con la sintassi di $CURRENT_DATE(yyyy-MM-dd), che viene risolta usando QDate::currentDate().toString( formatText )e la formattazione della stringa di classe QDate .


Tuttavia, esistono soluzioni migliori rispetto al tentativo di implementare tutti i tipi di token di cui gli utenti potrebbero aver bisogno o richiedere (che potrebbe essere un elenco in continua espansione).

Esistono attualmente almeno due mezzi per implementare una soluzione più solida:

A) Il testo dell'etichetta viene generato facoltativamente utilizzando l'Editor espressioni QGIS

Questo è attualmente il metodo utilizzato nel motore di etichettatura avanzato ...

inserisci qui la descrizione dell'immagine

Poiché le etichette Composer non sono relative all'origine dati di un layer della mappa, la sezione di Fields and Valuesdovrebbe essere sostituita e popolata con token Print Composer più appropriati, ad esempio nome del progetto, titolo, proiezione, utente, ecc. (Le funzioni di data sono già nel master build del ramo). Fortunatamente, gli sviluppatori hanno lavorato per rendere relativamente "facile" l'aggiunta di nuove sezioni di espressione, anche se richiederebbe comunque del lavoro. Sarebbe inoltre necessario un lavoro aggiuntivo per accogliere nuovi token.

B) Il testo (o token) dell'etichetta è facoltativamente il risultato dei frammenti di Python

Sebbene non sia facile da usare come la soluzione Expression Editor, poiché richiede una comprensione di Python, l'implementazione di tale funzionalità richiederebbe probabilmente solo un singolo sforzo di sviluppo. Quindi, qualsiasi aspetto testuale di un progetto QGIS, inclusi i suoi vari elementi Composer , disponibili tramite l'API PyQGIS (cioè Python Console), è stato possibile accedere, formattare e inviare al testo.

Gli snippet di Python possono essere racchiusi in singoli token e incorporati nel testo corrente della casella di modifica del testo o essere contenuti in una casella di modifica del testo separata nella GUI, attivata dalla casella di controllo. Per motivi di sicurezza, probabilmente il codice non verrebbe eseguito automaticamente all'avvio di Composer (potrebbe essere un'opzione da consentire sempre, comunque).

L'approccio separato della casella di modifica del testo consentirebbe la convalida del codice Python e la codifica di funzioni Python specificatamente denominate, ad esempio il frammento seguente:

import getpass
from qgis.core import *

def pytoken_user():
    return getpass.getuser()

def pytoken_title():
    return QgsProject.instance().title()

sostituirà qualsiasi numero di token nel testo denominati $pytoken_usero $pytoken_title.


Entrambe le soluzioni di cui sopra sono notevolmente più estendibili rispetto all'implementazione di singoli token in linea nel codice sorgente QGIS. Potrebbero esserci anche altre soluzioni migliori.

Il Dr. Hugentobler ha recentemente rielaborato Print Composer nel ramo principale di QGIS, quindi ora è il momento ideale per richiedere tali funzionalità di etichettatura per la prossima versione di QGIS . Aggiungerò una richiesta di funzionalità per questi due APPENA POSSIBILE.



Una di queste soluzioni è diventata una versione di rilascio di QGIS? O è ancora in fase di sviluppo? Grazie
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.