أكثر

تمكين وتعطيل قواعد التصميم


لدي طبقة متجهة في QGIS. لقد أضفت مجموعة من القواعد لهذه الطبقة. هذا الQDockWidgetللطبقة في نافذة QGIS الرئيسية.

لذلك يتم إضافة قاعدة مختلفة باستخدام كل من الطرق السريعة والمقسمة والثانويةQgsRuleBasedRendererV2.0.

تحتوي كل القواعد على خانة الاختيار حيث يمكنني تبديل رؤية الطبقة يدويًا. هل هناك أي طريقة يمكنني من خلالها تبديل هذا باستخدام بيثون؟

حاولت استخدام طبقة الشجرة

root = QgsProject.instance (). layerTreeRoot () للطفل في root.children (): نوع الطباعة (child) ، child.layerName () ، child.children ()

لكنطفل أطفاليقوم بإرجاع قائمة فارغة بدلاً من تلك القواعد.

نوع شبكة الطرق هوqgis._core.QgsLayerTreeLayer.


هذه خاصية للطبقة وليست لشجرة الطبقة.

احصل على الطبقة ، وقم بتعديل قواعد جهاز العرض الخاص بها

# قائمة قواعد قواعد الطبقات = layer.rendererV2 (). rootRule (). children () # قم بإلغاء تنشيط قاعدة (في هذا المثال ، القاعدة الأولى [0]) القواعد [0] .setCheckState (False) # مزامنة أسطورة مع الترميز iface.layerTreeView (). RefreshLayerSymbology (layer.id ())

الإجابة المقبولة تعمل في QGIS 2.0.

بالنسبة للإصدار 3.0 ، يجب عليك استدعاء setActive في القاعدة

القواعد = layer.render (). rootRule (). children () rules [0] .setActive (False) iface.layerTreeView (). RefreshLayerSymbology (layer.id ())


شاهد الفيديو: تفعيل جدار الحماية في الراوتر جرب وشوف الفرق (شهر اكتوبر 2021).