আমি পাইথন শেখার অংশ হিসাবে একটি প্লাগইন থেকে পোস্টগিস স্তরগুলি কুইগিসে যুক্ত করার জন্য একটি প্লাগইন বিকাশের চেষ্টা করি।
পোস্টগিস লেয়ার যুক্ত করার কোডটি কুকবুক থেকে নেওয়া হয়েছে এবং আমি কিগিসের মধ্যে পাইথন কনসোল থেকে চালিয়ে নিলে ঠিকঠাক কাজ করি (যদি বাটন ওকে ডায়ালগ বাক্সে চাপ দেওয়া হয় == 1 এবং আমার স্তরটি কিউগিসে যুক্ত করা উচিত)।
তবে আমি যদি এটি আমার প্লাগইন থেকে চালনা করি তবে এটি নামের বার্তাটি ছুঁড়ে ফেলেছে: নাম 'কিংসডাটাসোর্সুরি' সংজ্ঞায়িত করা হয়নি। প্লাগইন থেকে এটি চালাতে আমি কেন ত্রুটি পাই?
পাইথন কনসোল থেকে বনাম কোনও ফাংশনের ভিতরে / প্লাগইন থেকে কীভাবে একটি স্তর যুক্ত করব তাতে কী পার্থক্য রয়েছে?
def run(self):
"""Run method that performs all the real work"""
# show the dialog
self.dlg.show()
# Run the dialog event loop
result = self.dlg.exec_()
# See if OK was pressed
if result == 1:
# Do something useful here - delete the line containing pass and
# substitute with your code.
uri = QgsDataSourceURI()
uri.setConnection("localhost", "5432", "test", "postgres", "postgres")
#set database schema, table name, geometry column and optionaly subset(WHERE clause)
uri.setDataSource ("basic", "cities", "geom")
# Defining the layer name and layer type for QGIS?
vlayer=QgsVectorLayer (uri .uri() ,"cities","postgres")