Vai al contenuto

Cronometro↵

Come visualizzare un cronometro che misuri il tempo trascorso in una sessione di lavoro con QGIS. Il cronometro verrà posizionato in alto nella map canvas tramite l'uso delle decorazioni e in particolare Etichetta Titolo...

Le Decorazioni sono raggiungibili dal Menu Visualizza | Decorazioni | Etichetta Titolo...

verrà aperta una finestra per configurare Etichetta Titolo e dove editare l'espressione:

Espressione↵

senza Macro↵

with_variable('durata',
  age(
    now(),
    make_datetime(2022,04,07,09,05,42) -- i valori vanno inseriti manualmente
    ),
lpad(floor(hour(@durata)),2,0)
||'h:'||
lpad(to_int(minute(@durata)-floor(hour(@durata))*60),2,0))

con Macro↵

with_variable('durata',
  age(
    now(),
    @starting_time -- variabile che contine il datetime di apertura progetto
    ),
lpad(floor(hour(@durata)),2,0)
||'h:'||
lpad(to_int(minute(@durata)-floor(hour(@durata))*60),2,0))

Macro↵

La macro è stata realizzata da Valerio Pinna e Giulio Fattori che ringraziamo per il prezioso aiuto.

from datetime import datetime
from qgis.core import QgsProject, QgsExpression, QgsExpressionContextUtils



def openProject():
    project = QgsProject.instance()
    QgsExpressionContextUtils.setProjectVariable(project,'starting_time',str(datetime.now()))
    QgsExpressionContextUtils.projectScope(project).variable('starting_time')



def saveProject():
    pass

def closeProject():
    pass

https://docs.qgis.org/testing/en/docs/user_manual/introduction/qgis_configuration.html#id71

NB: per utilizzare la macro nel Progetto:

  1. Impostazioni | Opzioni | Generale → Abilita Macro | Sempre
  2. Progetto | Proprietà | Macro

Funzioni e variabili utilizzate: