কিউজিএস ম্যাপলায়ারজিস্ট্রি কিউজিআইএস 3-তে সরানো হয়েছে?


20

হয় QgsMapLayerRegistryQGIS3 সঙ্গে pyqgis উপলব্ধ হবে যাচ্ছে

আমি যখন এটিকে QGIS পাইথন কনসোলে টাইপ করলাম (অজগর 2) তখন পাইথন এটি স্বীকৃত বলে মনে হয় কারণ এটি স্বয়ংক্রিয়ভাবে সমাপ্ত qgis.core.QgsMapLayerRegistry, তবে তারপরে একটি ত্রুটি দেয় যা সেখানে নেই:

Traceback (most recent call last):
  File "/usr/lib/python3.5/code.py", line 91, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
AttributeError: module 'qgis.core' has no attribute 'QgsMapLayerRegistry'

আমি কিউজিআইএস ২.৯৯ এর দুটি সংস্করণ দিয়ে এটি চেষ্টা করেছি (একটি 01/07 এবং 06/17 এ আছে)। উভয় সংস্করণ একই ত্রুটি দেয়। importহয় না:

>>>from qgis.core import QgsMapLayerRegistry
Traceback (most recent call last):
  File "/usr/lib/python3.5/code.py", line 91, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
ImportError: cannot import name 'QgsMapLayerRegistry'

QgsMapLayerRegistryকিউজিআইএস 3- এ সরানো হয়?

উত্তর:


27

হ্যাঁ এটি সরানো হয়েছে, তবে বিকল্পের উপস্থিতি রয়েছে।

3.0 এপিআই এর পরিবর্তনগুলি এখানে তালিকাভুক্ত করা হয়েছে:

https://qgis.org/api/api_break.html

QgsMapLayerRegistry: এর কার্যকারিতা সরানো হয়েছে QgsProject

মূল কারণটি হ'ল, QgsMapLayerRegistry হল / সিঙ্গলটন এবং সুতরাং কেবলমাত্র একটি একক রেজিস্ট্রি থাকতে পারে। এই সীমাবদ্ধতা অপসারণ করার সাথে সাথে বড় বড় ব্লকগুলি একাধিক প্রকল্প পাশাপাশি পাশাপাশি খোলা থাকার মতো নতুন জিনিস বাস্তবায়নের উপায় থেকে যায়।


আমি মনে করি উত্তরটি এখনও অসম্পূর্ণ।
অভিজিৎ গুজার

2
আমি মনে করি যে উত্তরটি এখনও অসম্পূর্ণ বলে আপনি কেন ভাবেন সে সম্পর্কে আপনাকে আরও তথ্য দেওয়া দরকার।
ম্যাথিয়াস কুহন

আপনি যদি QgsProject.instance () ব্যবহার করেন তবে কীভাবে এটি সিঙ্গলটন সমস্যা সমাধান করবে?
মিকি পার্লস্টেইন

@ মিকিপি পার্লস্টেইন আপনি ঠিক বলেছেন, আপনি যদি QgsProject.instance () ব্যবহার করেন তবে এটি সমাধান হয়নি। তবে, স্বতন্ত্র অ্যাপ্লিকেশনগুলি ইতিমধ্যে এখন একাধিক প্রকল্পের সাথে প্রয়োগ করা যেতে পারে এবং কিউজিআইএস সার্ভার কোডটিও এই দিকে চলে গেছে। দীর্ঘ রান QgsProject.instance ইন () পারে সম্পূর্ণরূপে উধাও হয়ে যায়।
মাথিয়াস কুহন

আমি বুঝতে পারি না যে এক অংশে একক সিঙ্গলটনের ব্যবহার থেকে অন্য অংশে একাধিক ইনস্ট্যান্স চালানোর দক্ষতা কীভাবে পরিবর্তন হয় (যেভাবেই একই সিঙ্গলটন উদাহরণটি পাওয়া যায় (সংজ্ঞা অনুসারে) ... এটি কী কী তা বোঝাতে আরও বুদ্ধিমান হয় না? সিঙ্গেলটন অ্যাপ্লিকেশনটি চলমান দৃষ্টান্তগুলি পেতে পারে? এটি আরও সহজ ইন্টারঅ্যাপিলিটি এবং এক্সটেনসিবিলিটি (মাইক্রোসফ্ট অফিসের এসডিকে মতো যেখানে আপনি অফিসের কোনও উন্মুক্ত দৃষ্টান্তের সাথে সংযোগ করতে পারেন বা একটি নতুন উদাহরণ খুলতে পারবেন
মিকি পার্লস্টাইন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.