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:

Torna su