क्या प्रिंट संगीतकार के लिए "वर्तमान उपयोगकर्ता" लेबल जोड़ने का कोई तरीका है?


11

क्या QGIS में प्रिंट कंपोज़र के लिए एक मौजूदा उपयोगकर्ता लेबल जोड़ने का एक तरीका है।

मुझे लगा कि $ CURRENT_DATE प्रारूप में उपलब्ध समान कुछ हो सकता है।

यह एक विंडोज़ वातावरण में होगा।


1
"$ CURRENT_DATE (yyyy-MM-dd)" बहुत उपयोगी निकला और मैंने इसे अपने कई कंपोजर टेम्प्लेट में शामिल किया। क्या इन आदेशों के अधिक उपलब्ध हैं? जैसे मेरे प्रोजेक्ट का नाम, या एक निश्चित लेयर नाम, आदि को स्वतः दिखाने के लिए?
सिन्दरका

जवाबों:


8

वर्तमान में, यह एक अपूर्ण सुविधा अनुरोध है ( फ़ीचर # 1385 देखें )।

आप नए 'टोकन' (या 'फ़ील्ड' के लिए अपने विचारों को जोड़ सकते हैं क्योंकि वे अनुरोध में दिए गए हैं)। डेटा प्रकार के लिए क्यूटी वर्गों के अनुसार अनुशंसित स्वरूपण विकल्पों को शामिल करना याद रखें , जैसे कि सिंटैक्स के साथ किया गया है $CURRENT_DATE(yyyy-MM-dd), जिसका उपयोग करके हल किया गया है QDate::currentDate().toString( formatText )और क्यूडेट क्लास स्ट्रिंग प्रारूपण


हालांकि, उन सभी प्रकार के टोकन को लागू करने की कोशिश करने से बेहतर समाधान हैं जिनकी उपयोगकर्ताओं को आवश्यकता हो सकती है या अनुरोध किया जा सकता है (जो कि हर विस्तार वाली सूची हो सकती है)।

अधिक मजबूत समाधान को लागू करने के लिए वर्तमान में कम से कम दो साधन हैं:

ए) लेबल पाठ वैकल्पिक रूप से QGIS अभिव्यक्ति संपादक का उपयोग करके उत्पन्न होता है

यह वर्तमान में उन्नत लेबलिंग इंजन में प्रयुक्त विधि है ...

यहाँ छवि विवरण दर्ज करें

चूँकि संगीतकार लेबल मानचित्र परत के डेटा स्रोत के सापेक्ष नहीं हैं, इसलिए अनुभाग को Fields and Valuesप्रतिस्थापित करना होगा और अधिक उपयुक्त प्रिंट संगीतकार टोकन, जैसे परियोजना का नाम, शीर्षक, प्रक्षेपण, उपयोगकर्ता, आदि के साथ प्रतिस्थापित करना होगा (दिनांक फ़ंक्शन पहले से ही मास्टर में हैं। शाखा बनाता है)। सौभाग्य से, नए अभिव्यक्ति वर्गों को जोड़ने के लिए इसे अपेक्षाकृत 'आसान' बनाने के लिए डेवलपर्स द्वारा काम किया गया है, हालांकि यह अभी भी कुछ काम करेगा। नए टोकन को समायोजित करने के लिए अतिरिक्त काम की भी आवश्यकता होगी।

बी) लेबल पाठ (या टोकन) वैकल्पिक रूप से पायथन स्निपेट (ओं) का परिणाम है

हालांकि अभिव्यक्ति संपादक समाधान के रूप में उपयोगकर्ता के अनुकूल नहीं है, क्योंकि इसे पायथन की समझ की आवश्यकता है, इस तरह की सुविधा के कार्यान्वयन के लिए संभवतः केवल एक ही विकास के प्रयास की आवश्यकता होगी। फिर, क्यूक्यूआईएस परियोजना का कोई भी पाठकीय पहलू, जिसमें इसके विभिन्न कम्पोजर आइटम शामिल हैं , जो PyQGIS एपीआई (यानी पायथन कंसोल) के माध्यम से उपलब्ध हैं, को पाठ तक पहुँचा, स्वरूपित और आउटपुट किया जा सकता है।

पायथन स्निपेट्स को व्यक्तिगत टोकन में लपेटा जा सकता है और पाठ संपादित करें बॉक्स के वर्तमान पाठ में एम्बेड किया जा सकता है, या GUI में एक अलग पाठ संपादित बॉक्स में चेक बॉक्स द्वारा सक्रिय किया जा सकता है। सुरक्षा कारणों से, कोड संभवतः कम्पोज़र लॉन्च पर ऑटो-रन नहीं होगा (हमेशा, हालांकि, अनुमति देने का एक विकल्प हो सकता है)।

अलग-अलग टेक्स्ट एडिट बॉक्स दृष्टिकोण पायथन कोड सत्यापन और विशेष रूप से नामित पायथन फ़ंक्शन की कुंजी के लिए अनुमति देगा, उदाहरण के लिए निम्नलिखित स्निपेट:

import getpass
from qgis.core import *

def pytoken_user():
    return getpass.getuser()

def pytoken_title():
    return QgsProject.instance().title()

नामित पाठ टोकन के किसी भी नंबर को प्रतिस्थापित करेगा $pytoken_userया $pytoken_title


उपरोक्त दोनों उपाय QGIS स्रोत कोड में व्यक्तिगत टोकन को लागू करने की तुलना में काफी अधिक विस्तार योग्य हैं। अन्य या बेहतर समाधान भी हो सकते हैं।

डॉ। हुगेंटोबलर हाल ही में क्यूजीआईएस की मास्टर शाखा में प्रिंट कंपोजर का काम कर रहे हैं, इसलिए अब क्यूजीआईएस के अगले संस्करण के लिए ऐसी लेबलिंग सुविधाओं का अनुरोध करने का एक आदर्श समय है । मैं इन दोनों ASAP के लिए एक सुविधा अनुरोध जोड़ूंगा।



क्या इनमें से किसी भी समाधान ने QGIS के रिलीज़ संस्करण में प्रवेश किया? या यह अभी भी विकास में है? धन्यवाद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.