QGIS'te baskı oluşturucusuna geçerli bir kullanıcı etiketi eklemenin bir yolu var mı?
$ CURRENT_DATE biçimine benzer bir şey olabileceğini düşündüm.
Bu bir pencere ortamında olurdu.
QGIS'te baskı oluşturucusuna geçerli bir kullanıcı etiketi eklemenin bir yolu var mı?
$ CURRENT_DATE biçimine benzer bir şey olabileceğini düşündüm.
Bu bir pencere ortamında olurdu.
Yanıtlar:
Şu anda, bu yerine getirilmemiş bir özellik isteği (bkz. Özellik # 1385 ).
Yeni 'jetonlar' (veya istekte yer alan 'alanlar') için fikirlerinizi ekleyebilirsiniz. Gereğince önerilen biçimlendirme seçenekleri eklemeyi unutmayın veri türü için Qt sınıfları sözdizimi ile yapılmıştır gibi $CURRENT_DATE(yyyy-MM-dd)
kullanılarak çözülürse, QDate::currentDate().toString( formatText )
ve QDate sınıf dizesi biçimlendirme .
Bununla birlikte, kullanıcıların ihtiyaç duyabileceği veya talep edebileceği tüm token türlerini (her genişleyen bir liste olabilir) uygulamaya çalışmaktan daha iyi çözümler vardır.
Şu anda daha sağlam bir çözüm uygulamak için en az iki yol vardır:
A) Etiket metni isteğe bağlı olarak QGIS İfade Düzenleyicisi kullanılarak oluşturulur
Bu şu anda gelişmiş etiketleme motorunda kullanılan yöntem ...
Composer etiketleri bir harita katmanının veri kaynağına göreli olmadığından, bölümünün Fields and Values
değiştirilmesi ve proje adı, başlık, projeksiyon, kullanıcı vb. Gibi daha uygun Print Composer belirteçleriyle doldurulması gerekir (tarih işlevleri zaten master'dadır) şube yapıları). Neyse ki, geliştiriciler tarafından yeni ifade bölümleri eklemeyi nispeten 'kolay' hale getirmek için çalışmalar yapıldı, ancak yine de biraz çalışma gerektirecekti. Yeni jetonları yerleştirmek için ek çalışmalara ihtiyaç duyulacaktır.
B) Etiket metni (veya simgeleri) isteğe bağlı olarak Python snippet (ler) inin sonucudur
İfade Düzenleyici çözümü kadar kullanıcı dostu olmasa da, Python'un anlaşılmasını gerektirdiğinden, böyle bir özelliğin uygulanması muhtemelen sadece tek bir geliştirme çabası gerektirecektir. Daha sonra, QQIS projesinin herhangi bir metinsel yönüne ( PyQGIS API (yani Python Konsolu) aracılığıyla mevcut olan çeşitli Composer öğeleri dahil ) erişilebilir, biçimlendirilebilir ve metne gönderilebilir.
Python snippet'leri tek tek belirteçlere sarılabilir ve metin düzenleme kutusunun geçerli metnine gömülebilir veya GUI'de onay kutusu tarafından etkinleştirilen ayrı bir metin düzenleme kutusuna yerleştirilebilir. Güvenlik nedeniyle, kod muhtemelen Composer lansmanında otomatik olarak çalıştırılmaz (yine de her zaman izin verme seçeneği olabilir).
Ayrı metin düzenleme kutusu yaklaşımı, Python kod doğrulamasına ve özel olarak adlandırılmış Python işlevlerinin, örneğin aşağıdaki snippet'in anahtarlanmasına izin verir:
import getpass
from qgis.core import *
def pytoken_user():
return getpass.getuser()
def pytoken_title():
return QgsProject.instance().title()
$pytoken_user
veya adlı herhangi bir sayıda metin içi jetonun yerini alır $pytoken_title
.
Yukarıdaki çözümlerin her ikisi de, bireysel jetonları QGIS kaynak kodunda sıralı olarak uygulamaktan çok daha genişletilebilir. Başka veya daha iyi çözümler de olabilir.
Dr. Hugentobler yakın zamanda Print Composer'ı QGIS'in ana dalında yeniden çalışıyor, bu nedenle şimdi QGIS'in bir sonraki sürümü için bu tür etiketleme özellikleri istemek için ideal bir zaman . Bu iki ASAP için bir özellik isteği ekleyeceğim.