1
ลงทะเบียน qgsfunction ที่กำหนดเองใน pyqgis
ฉันใช้ pyqgis ในแอปพลิเคชันแบบสแตนด์อโลน ตอนนี้ผมต้องการที่จะสร้างการแสดงออกที่กำหนดเองเพื่อที่จะใช้เป็น FilterExpression ruleBasedRendererV2ในการปกครองของ (ฉันลองใช้โหมดแสดงภาพกับฟังก์ชั่นที่มีอยู่ก่อนหน้าและทุกอย่างทำงานได้ดี!) Custom qgisfunction(bitwise AND-function - เนื่องจากยังไม่มีฟังก์ชั่นดังกล่าว) มีลักษณะดังนี้: from qgis.utils import qgsfunction @qgsfunction(args="auto", group='Python') def bitwise_and(value1, value2, feature, parent): return value1 & value2 ฉันพยายามลงทะเบียนผ่าน: from qgis.core import QgsExpression QgsExpression.registerFunction(bitwise_and) ทดสอบการแสดงออกผ่าน: expressionString = 'bitwise_and(2, 2) = 2' exp = QgsExpression(expressionString) if exp.hasParserError(): print(exp.parserErrorString()) (ให้2=2เสมอTrue) ทำงานหลังจากลงทะเบียนฟังก์ชั่นและล้มเหลวหากไม่ได้ แต่ถึงกระนั้นฉันไม่สามารถใช้การแสดงออกภายในกฎ …