Чи є спосіб додати мітку "поточний користувач" до композитора друку?


11

Чи є спосіб додати тегу користувача до композитора друку в QGIS.

Я подумав, що може бути щось подібне до формату $ CURRENT_DATE.

Це було б у середовищі Windows.


1
"$ CURRENT_DATE (yyyy-MM-dd)" виявився дуже корисним, і я включив його до багатьох моїх композиторських шаблонів. Чи є більше цих команд? Начебто автоматично показувати ім’я мого проекту, або назву певного шару тощо?
SAnderka

Відповіді:


8

Наразі це невиконаний запит на функцію (див. Особливість № 1385 ).

Ви можете додати свої ідеї для нових "жетонів" (або "полів", оскільки вони виявлені у запиті). Не забудьте включити рекомендовані параметри форматування відповідно до класів Qt для типу даних , як це було зроблено з синтаксисом $CURRENT_DATE(yyyy-MM-dd), який вирішується за допомогою QDate::currentDate().toString( formatText )і форматування рядка класу QDate .


Однак є кращі рішення, ніж намагатися реалізувати всі типи токенів, які можуть потребувати або запитувати користувачі (що може бути списком, що розширюється кожен).

Наразі існує щонайменше два засоби для реалізації більш надійного рішення:

A) Текст мітки необов'язково генерується за допомогою редактора виразів QGIS

В даний час це метод, який використовується в просунутому механізмі маркування ...

введіть тут опис зображення

Оскільки мітки композитора не відносяться до джерела даних картографічного рівня, розділ Fields and Valuesпотрібно буде замінити та заповнити більш відповідними маркерами друку композитора, наприклад, ім'ям проекту, заголовком, проекцією, користувачем тощо (функції дати вже є в головній будує галузь). На щастя, розробники розробили роботу, щоб зробити її відносно простою для додавання нових розділів виразів, хоча це все ще потребує певної роботи. Додаткові роботи також знадобляться для розміщення нових жетонів.

B) Текст мітки (або лексем) необов'язково є результатом фрагментів Python

Хоча це не так зручно, як рішення Expression Editor, оскільки воно вимагає розуміння Python, реалізація такої функції, можливо, вимагатиме лише одного зусилля з розробки. Тоді будь-який текстовий аспект проекту QGIS, включаючи його різні елементи композитора , доступні через API PyQGIS (тобто консоль Python), може бути доступний, відформатований та виведений у текст.

Фрагменти Python можуть бути загорнуті в окремі лексеми та вбудовані в поточний текст поля редагування тексту, або міститися в окремому полі редагування тексту в графічному інтерфейсі, активованому прапором. З міркувань безпеки код, ймовірно, не запускається автоматично під час запуску Composer (однак це може бути можливість дозволити завжди).

Підхід до окремого вікна редагування тексту дозволив би перевірити код Python та набрати спеціально названі функції Python, наприклад, наступний фрагмент:

import getpass
from qgis.core import *

def pytoken_user():
    return getpass.getuser()

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

замінить будь-яку кількість текстових лексем з назвою $pytoken_userабо $pytoken_title.


Обидва вищезазначені рішення значно розширювані, ніж реалізація окремих токенів в рядку вихідного коду QGIS. Також можуть бути й інші, або кращі рішення.

Д-р Хугентоблер нещодавно переробляв композицію друку у головній галузі QGIS, тому зараз ідеальний час вимагати таких функцій маркування для наступної версії QGIS . Я додам запит на функції для цих двох ASAP.



Чи будь-яке з цих рішень перетворило його на версію QGIS? Або це ще в розвитку? Дякую
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.