«$ CURRENT_DATE (yyyy-MM-dd)» оказался очень полезным, и я включил его во многие мои шаблоны для композиторов. Доступны ли еще эти команды? Как автоматически показывать имя моего проекта или имя определенного слоя и т. Д.?
Сандерка
Ответы:
8
В настоящее время это невыполненный запрос функции (см. Функция # 1385 ).
Тем не менее, существуют более эффективные решения, чем попытка реализовать все типы токенов, которые могут потребоваться или запрашиваться пользователями (это может быть расширяющийся список).
В настоящее время существует как минимум два способа реализации более надежного решения:
A) Текст метки необязательно генерируется с помощью редактора выражений QGIS
В настоящее время этот метод используется в расширенном движке маркировки ...
Поскольку метки Composer не относятся к источнику данных слоя карты, Fields and Valuesнеобходимо заменить участок и заполнить его более подходящими токенами Print Composer, например, именем проекта, заголовком, проекцией, пользователем и т. Д. (Функции даты уже находятся в главной ветка строит). К счастью, разработчики проделали работу, позволяющую относительно легко добавлять новые разделы выражений, хотя это все равно потребует некоторой работы. Также потребуется дополнительная работа для размещения новых токенов.
B) Текст метки (или токены) может быть результатом фрагментов Python.
Хотя это и не так удобно для пользователя, как решение Expression Editor, поскольку требует понимания Python, реализация такой функции, возможно, потребует только одного усилия по разработке. Затем любой текстовый аспект проекта QGIS, включая его различные элементы Composer , доступные через PyQGIS API (т.е. консоль Python), может быть доступен, отформатирован и выведен в текст.
Фрагменты Python могут быть обернуты в отдельные токены и встроены в текущий текст поля редактирования текста, или помещены в отдельное поле редактирования текста в графическом интерфейсе, активируемое флажком. По соображениям безопасности код, вероятно, не будет автоматически запускаться при запуске Composer (хотя может быть разрешен всегда).
Подход с использованием отдельного текстового редактора позволил бы проверять код Python и вводить специальные функции Python, например, следующий фрагмент:
заменит любое количество токенов, названных $pytoken_userили $pytoken_title.
Оба вышеупомянутых решения являются значительно более расширяемыми, чем отдельные встроенные токены в исходном коде QGIS. Могут быть и другие или лучшие решения.
Ответы:
В настоящее время это невыполненный запрос функции (см. Функция # 1385 ).
Вы можете добавить свои идеи для новых «токенов» (или «полей», так как они отслеживаются в запросе). Не забудьте включить рекомендуемые параметры форматирования , как в классах Qt для типа данных , как это было сделано с синтаксисом
$CURRENT_DATE(yyyy-MM-dd)
, который разрешен с использованиемQDate::currentDate().toString( formatText )
и строка класса QDate форматирования .Тем не менее, существуют более эффективные решения, чем попытка реализовать все типы токенов, которые могут потребоваться или запрашиваться пользователями (это может быть расширяющийся список).
В настоящее время существует как минимум два способа реализации более надежного решения:
A) Текст метки необязательно генерируется с помощью редактора выражений QGIS
В настоящее время этот метод используется в расширенном движке маркировки ...
Поскольку метки Composer не относятся к источнику данных слоя карты,
Fields and Values
необходимо заменить участок и заполнить его более подходящими токенами Print Composer, например, именем проекта, заголовком, проекцией, пользователем и т. Д. (Функции даты уже находятся в главной ветка строит). К счастью, разработчики проделали работу, позволяющую относительно легко добавлять новые разделы выражений, хотя это все равно потребует некоторой работы. Также потребуется дополнительная работа для размещения новых токенов.B) Текст метки (или токены) может быть результатом фрагментов Python.
Хотя это и не так удобно для пользователя, как решение Expression Editor, поскольку требует понимания Python, реализация такой функции, возможно, потребует только одного усилия по разработке. Затем любой текстовый аспект проекта QGIS, включая его различные элементы Composer , доступные через PyQGIS API (т.е. консоль Python), может быть доступен, отформатирован и выведен в текст.
Фрагменты Python могут быть обернуты в отдельные токены и встроены в текущий текст поля редактирования текста, или помещены в отдельное поле редактирования текста в графическом интерфейсе, активируемое флажком. По соображениям безопасности код, вероятно, не будет автоматически запускаться при запуске Composer (хотя может быть разрешен всегда).
Подход с использованием отдельного текстового редактора позволил бы проверять код Python и вводить специальные функции Python, например, следующий фрагмент:
заменит любое количество токенов, названных
$pytoken_user
или$pytoken_title
.Оба вышеупомянутых решения являются значительно более расширяемыми, чем отдельные встроенные токены в исходном коде QGIS. Могут быть и другие или лучшие решения.
Доктор Хугентоблер недавно перерабатывал Print Composer в основной ветке QGIS, поэтому сейчас идеальное время для запроса таких функций маркировки для следующей версии QGIS . Я добавлю запрос функции для этих двух как можно скорее.
источник