Чи є спосіб додати тегу користувача до композитора друку в QGIS.
Я подумав, що може бути щось подібне до формату $ CURRENT_DATE.
Це було б у середовищі Windows.
Чи є спосіб додати тегу користувача до композитора друку в QGIS.
Я подумав, що може бути щось подібне до формату $ CURRENT_DATE.
Це було б у середовищі Windows.
Відповіді:
Наразі це невиконаний запит на функцію (див. Особливість № 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.