回答:
現在、これは未達成の機能要求です(機能#1385を参照)。
新しい「トークン」(またはリクエストでモニークされている「フィールド」)のアイデアを追加できます。あたりとして推奨される書式設定オプション含めることを忘れないでくださいデータ型のQtのクラスをの構文で行われているように、$CURRENT_DATE(yyyy-MM-dd)
使用して解決され、QDate::currentDate().toString( formatText )
かつQDATEクラス文字列の書式。
ただし、ユーザーが必要または要求する可能性のあるすべての種類のトークンを実装しようとするよりも優れたソリューションがあります(これはあらゆる拡張リストである可能性があります)。
現在、より堅牢なソリューションを実装するには、少なくとも2つの方法があります。
A)ラベルテキストは、オプションでQGIS Expression Editorを使用して生成されます
これは現在、高度なラベル付けエンジンで使用されている方法です...
Composerラベルはマップレイヤーのデータソースに関連していないため、のセクションをFields and Values
置き換えて、プロジェクト名、タイトル、投影、ユーザーなど、より適切なPrint Composerトークンを入力する必要があります(日付関数は既にマスターにありますブランチビルド)。幸いなことに、開発者は新しい式セクションを比較的「簡単に」追加するための作業を行ってきましたが、まだ多少の作業が必要になります。新しいトークンに対応するには、追加の作業も必要です。
B)ラベルテキスト(またはトークン)は、オプションでPythonスニペットの結果です
Expression Editorソリューションほどユーザーフレンドリーではありませんが、Pythonを理解する必要があるため、このような機能の実装に必要な開発作業は1つだけです。その後、PyQGIS API(Pythonコンソールなど)を介して利用できる、さまざまなComposerアイテムを含む QGISプロジェクトのテキスト部分にアクセスし、フォーマットし、テキストに出力できます。
Pythonスニペットは、個々のトークンでラップしてテキスト編集ボックスの現在のテキストに埋め込むか、チェックボックスでアクティブにするGUIの別のテキスト編集ボックスに含めることができます。セキュリティ上の理由から、コードはおそらく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ソースコードに個々のトークンをインラインで実装するよりも大幅に拡張可能です。他の、またはより良い解決策もあります。
Hugentobler博士は最近、QGISのマスターブランチでPrint Composerを作り直しているため、次のバージョンのQGISでこのようなラベル付け機能を要求するのに最適な時期です。これら2つのASAPの機能要求を追加します。