"$ CURRENT_DATE (yyyy-MM-dd)" ternyata sangat berguna dan saya memasukkannya ke dalam banyak template komposer saya. Apakah ada lebih banyak perintah ini yang tersedia? Ingin secara otomatis menampilkan nama proyek saya, atau nama layer tertentu, dll?
SAnderka
Jawaban:
8
Saat ini, ini adalah permintaan fitur yang tidak terpenuhi (lihat Fitur # 1385 ).
Anda dapat menambahkan ide-ide Anda untuk 'token' baru (atau 'bidang' saat mereka dimonikasi dalam permintaan). Ingatlah untuk memasukkan opsi format direkomendasikan sebagai per kelas Qt untuk tipe data , seperti telah dilakukan dengan sintaks $CURRENT_DATE(yyyy-MM-dd), yang diselesaikan menggunakan QDate::currentDate().toString( formatText )dan format QDate kelas string .
Namun, ada solusi yang lebih baik daripada mencoba menerapkan semua jenis token yang mungkin dibutuhkan atau diminta pengguna (yang bisa berupa daftar yang berkembang).
Saat ini setidaknya ada dua cara untuk mengimplementasikan solusi yang lebih kuat:
A) Teks label secara opsional dihasilkan menggunakan Editor Ekspresi QGIS
Saat ini metode yang digunakan dalam mesin pelabelan canggih ...
Karena label Komposer tidak relatif terhadap sumber data lapisan peta, bagian dari Fields and Valuesperlu diganti dan diisi dengan token Komposer Cetak yang lebih tepat, misalnya nama proyek, judul, proyeksi, pengguna, dll. (Fungsi tanggal sudah di master membangun cabang). Untungnya, ada pekerjaan yang dilakukan oleh pengembang untuk membuatnya relatif 'mudah' untuk menambahkan bagian ekspresi baru, meskipun itu masih membutuhkan beberapa pekerjaan. Pekerjaan tambahan juga diperlukan untuk mengakomodasi token baru.
B) Teks label (atau token) secara opsional merupakan hasil dari cuplikan Python
Meskipun tidak ramah pengguna seperti solusi Expression Editor, karena membutuhkan pemahaman tentang Python, implementasi fitur seperti itu mungkin hanya akan membutuhkan upaya pengembangan tunggal. Kemudian, setiap aspek tekstual dari proyek QGIS, termasuk berbagai item Komposernya , tersedia melalui API PyQGIS (yaitu Konsol Python), dapat diakses, diformat, dan di-output ke teks.
Cuplikan Python dapat dibungkus dengan token individual dan disematkan dalam teks saat ini dari kotak edit teks, atau dimasukkan dalam kotak edit teks terpisah di GUI, diaktifkan dengan kotak centang. Untuk alasan keamanan, kode ini mungkin tidak akan berjalan secara otomatis pada peluncuran Komposer (bisa jadi merupakan opsi untuk selalu mengizinkan).
Pendekatan kotak edit teks terpisah akan memungkinkan untuk validasi kode Python dan penguncian fungsi Python khusus bernama, misalnya potongan berikut:
akan mengganti sejumlah token teks yang bernama $pytoken_useratau $pytoken_title.
Kedua solusi di atas jauh lebih dapat dikembangkan daripada menerapkan token individual in-line dalam kode sumber QGIS. Mungkin ada solusi lain atau lebih baik.
Dr. Hugentobler baru-baru ini mengerjakan kembali Print Composer di cabang utama QGIS, jadi sekarang adalah waktu yang ideal untuk meminta fitur pelabelan seperti itu untuk versi QGIS berikutnya . Saya akan menambahkan permintaan fitur untuk dua ASAP ini.
Jawaban:
Saat ini, ini adalah permintaan fitur yang tidak terpenuhi (lihat Fitur # 1385 ).
Anda dapat menambahkan ide-ide Anda untuk 'token' baru (atau 'bidang' saat mereka dimonikasi dalam permintaan). Ingatlah untuk memasukkan opsi format direkomendasikan sebagai per kelas Qt untuk tipe data , seperti telah dilakukan dengan sintaks
$CURRENT_DATE(yyyy-MM-dd)
, yang diselesaikan menggunakanQDate::currentDate().toString( formatText )
dan format QDate kelas string .Namun, ada solusi yang lebih baik daripada mencoba menerapkan semua jenis token yang mungkin dibutuhkan atau diminta pengguna (yang bisa berupa daftar yang berkembang).
Saat ini setidaknya ada dua cara untuk mengimplementasikan solusi yang lebih kuat:
A) Teks label secara opsional dihasilkan menggunakan Editor Ekspresi QGIS
Saat ini metode yang digunakan dalam mesin pelabelan canggih ...
Karena label Komposer tidak relatif terhadap sumber data lapisan peta, bagian dari
Fields and Values
perlu diganti dan diisi dengan token Komposer Cetak yang lebih tepat, misalnya nama proyek, judul, proyeksi, pengguna, dll. (Fungsi tanggal sudah di master membangun cabang). Untungnya, ada pekerjaan yang dilakukan oleh pengembang untuk membuatnya relatif 'mudah' untuk menambahkan bagian ekspresi baru, meskipun itu masih membutuhkan beberapa pekerjaan. Pekerjaan tambahan juga diperlukan untuk mengakomodasi token baru.B) Teks label (atau token) secara opsional merupakan hasil dari cuplikan Python
Meskipun tidak ramah pengguna seperti solusi Expression Editor, karena membutuhkan pemahaman tentang Python, implementasi fitur seperti itu mungkin hanya akan membutuhkan upaya pengembangan tunggal. Kemudian, setiap aspek tekstual dari proyek QGIS, termasuk berbagai item Komposernya , tersedia melalui API PyQGIS (yaitu Konsol Python), dapat diakses, diformat, dan di-output ke teks.
Cuplikan Python dapat dibungkus dengan token individual dan disematkan dalam teks saat ini dari kotak edit teks, atau dimasukkan dalam kotak edit teks terpisah di GUI, diaktifkan dengan kotak centang. Untuk alasan keamanan, kode ini mungkin tidak akan berjalan secara otomatis pada peluncuran Komposer (bisa jadi merupakan opsi untuk selalu mengizinkan).
Pendekatan kotak edit teks terpisah akan memungkinkan untuk validasi kode Python dan penguncian fungsi Python khusus bernama, misalnya potongan berikut:
akan mengganti sejumlah token teks yang bernama
$pytoken_user
atau$pytoken_title
.Kedua solusi di atas jauh lebih dapat dikembangkan daripada menerapkan token individual in-line dalam kode sumber QGIS. Mungkin ada solusi lain atau lebih baik.
Dr. Hugentobler baru-baru ini mengerjakan kembali Print Composer di cabang utama QGIS, jadi sekarang adalah waktu yang ideal untuk meminta fitur pelabelan seperti itu untuk versi QGIS berikutnya . Saya akan menambahkan permintaan fitur untuk dua ASAP ini.
sumber