নথিপত্র
এখানে আপনি পাইকিজিআইআইএস এপিআই এর অধীনে নতুন এবং কোনটি বিরতি তা আবিষ্কার করতে পারেন ।
কীভাবে পোর্টের Python2 Python3 করার বিবরণ পেতে যেতে সেখানে
আপনি এই প্রশ্নের কিউআইজিআইএস 2 থেকে কিউজিআইএস 3 পর্যন্ত পরীক্ষার বিষয়ে কিছু বিশদ জানতে পারেন: কিউআইজিআইএস প্লাগইনগুলির জন্য স্বয়ংক্রিয় পরীক্ষাগুলি লিখছেন?
এবং মাইগ্রেশন সরঞ্জামগুলি সম্পর্কে আপনি এখানে একটি আকর্ষণীয় ওপেনগিস.চ. এর কাগজ পাবেন ।
আমার কোডে কি পরিবর্তন হবে
আসলে, আপনাকে এমন একটি প্লাগইনের কোড পরিবর্তন করতে হবে যা কোনও নতুন সংস্করণ পেরিয়ে যাওয়ার জন্য প্রস্তুত নয়।
আপনি qgis.utils.QGis.QGIS_VERSION_INT ফাংশন পাবেন যা QGIS সংস্করণটি যাচাই করার জন্য তৈরি করা হয়েছে। এটি কার্যকর হয় যখন কোনও ফাংশন অবচিত হয়। উদাহরণস্বরূপ setSelectedFeatures
থেকে 2.16।
if
বিবৃতি ব্যবহারের উদাহরণ দিয়ে :
if qgis.utils.QGis.QGIS_VERSION_INT < 21600 :
joinLayer.setSelectedFeatures( [ f.id() for f in request ] )
else:
joinLayer.selectByIds( [ f.id() for f in request ] )
PyQt
আপনি আপনার মডিউলটির অধীনে যে জিনিসটি আমদানি করছেন এটি একই । আপনার যদি সামঞ্জস্যতা প্রয়োজন হয় তবে দামটি আরও কোড লাইন (কিউজিআইএস 2 ফাংশন সহ কোড এবং কিউজিআইএস 3 ফাংশন সহ কোড এবং সংস্করণ এবং নতুন লাইব্রেরি আমদানির ক্ষমতা পরীক্ষা করার জন্য কোড) লিখতে হবে।
পাইকিউটি গ্রন্থাগার সম্পর্কে
পাইকিউটি 5 পাইকিউটি 4 এর সাথে পিছনে সামঞ্জস্যপূর্ণ নয়; পাইকিউটি 5 তে বেশ কয়েকটি উল্লেখযোগ্য পরিবর্তন রয়েছে। তবে নতুন লাইব্রেরিতে পুরানো কোডটি সামঞ্জস্য করা খুব কঠিন নয় difficult পার্থক্যগুলি, অন্যদের মধ্যে নিম্নলিখিত হিসাবে রয়েছে:
পাইথন মডিউলগুলি পুনর্গঠিত করা হয়েছে। কিছু মডিউল ফেলে দেওয়া হয়েছে (কিউটিস্ক্রিপ্ট), অন্যগুলিকে সাবমোডিয়ালে বিভক্ত করা হয়েছে (কিউটিগুই, কিউটিউবকিট)।
কিউটি ব্লুটুথ, কিউটিপজিশনিং বা ইঞ্জিনিও সহ নতুন মডিউল প্রবর্তিত হয়েছে।
- পাইকিউটি 5 কেবলমাত্র নতুন স্টাইলের সিগন্যাল এবং স্লট হ্যান্ডলিগ সমর্থন করে। সিগন্যাল () বা স্লট () এ কলগুলি আর সমর্থিত নয়। পাইকিউটি 5 কিউটি এপিআই-এর এমন কোনও অংশকে সমর্থন করে না যা Qt v5.0 এ অবচিত বা অপ্রচলিত হিসাবে চিহ্নিত হয়েছে are
উত্স: ( http://zetcode.com/gui/pyqt5/intr پيداوار/ )
আপনার / আমদানি বিবৃতিতে পরিবর্তনের কয়েকটি উদাহরণ এখানে রয়েছে:
পাইকিউটি 4 এর সাথে মনে রাখবেন আপনাকে এপিআই'র ডকটি সন্ধান করতে হবে:
উদাহরণস্বরূপ
পাইকিকিটি 4 কিউটকোর মডিউল
পাইকিউটি 4 কিউটিগুই মডিউল
from PyQt4.QtCore import QSettings, QTranslator, qVersion, QCoreApplication, Qt, QObject, SIGNAL
from PyQt4.QtGui import QAction, QIcon, QDialog, QFormLayout
এবং পাইকিউটি 5 এর সাথে আপনাকে এখন সেই
এপিআই'র ডকটি দেখতে হবে: পাইকিউটি 5 কিউটিকোর মডিউল
পাইকিউটি 5 কিউটিগুই মডিউল
সুতরাং যে হয়ে:
from PyQt5.QtCore import QSettings, QTranslator, QVersionNumber, QCoreApplication, Qt, QObject, pyqtSignal
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QAction, QDialog, QFormLayout
মনে রাখবেন যে :
কিউটিগুই মডিউলটি সাবমোডিয়ুলে বিভক্ত হয়েছে। কিউটিগুই মডিউলে উইন্ডোটিং সিস্টেম ইন্টিগ্রেশন, ইভেন্ট হ্যান্ডলিং, 2 ডি গ্রাফিক্স, বেসিক ইমেজিং, ফন্ট এবং পাঠ্যের জন্য ক্লাস রয়েছে। এতে ওপেনজিএল এবং ওপেনজিএল ইএস বাইন্ডিংগুলির একটি সম্পূর্ণ সেট রয়েছে ( ওপেনগিএলের জন্য সমর্থন দেখুন )। অ্যাপ্লিকেশন বিকাশকারীরা সাধারণত উচ্চতর স্তরের এপিআই যেমন QtWidgets মডিউলটিতে থাকা হিসাবে এটি ব্যবহার করবে।
এবং পাইকিউটি 5 কেবলমাত্র নতুন স্টাইলের সিগন্যাল এবং স্লট হ্যান্ডলিগ সমর্থন করে! এই পৃষ্ঠাটিতে একটি চেহারা আছে কিভাবে ব্যবহার করতে বুঝতে pyqtSignal
, connect
এবং e
ঘটনা বস্তুর পরিবর্তে ব্যবহার SIGNAL
।
এটি সামঞ্জস্যপূর্ণ করুন
সুতরাং পাইকিউটি 4 / পাইকিউটি 5 (এবং পাশাপাশি কিউজিআইএস 2 / কিউজিআইএস 3) এর মধ্যে সামঞ্জস্যতার সাথে আপনাকে পাইকিউ 5 লাইব্রেরি ব্যবহারের আগে আমদানি ব্যতীত / চেষ্টা করতে হবে।
try:
from PyQt5.QtCore import QSettings, QTranslator, QVersionNumber, QCoreApplication, Qt, QObject, pyqtSignal
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QAction, QDialog, QFormLayout
except:
from PyQt4.QtCore import QSettings, QTranslator, qVersion, QCoreApplication, Qt, QObject, SIGNAL
from PyQt4.QtGui import QAction, QIcon, QDialog, QFormLayout
এবং ভুলে যাবেন না যে আপনার কোডের আওতায় কিছু নির্দিষ্ট ফাংশন পরিবর্তন করার চেষ্টা করে / বাদে বা যদি বিবৃতি যোগ করে আপনাকে পরিবর্তন করতে হবে।
from PyQt4.QtCore import *
করাfrom PyQt4.QtCore import QSomething, QWhatever, QElse
, এটি মাইগ্রেশন স্ক্রিপ্টটি সঠিকভাবে শেষ পদক্ষেপটি করবে (মডিউলগুলি পরিবর্তিত হয়েছে সেখানে প্রয়োজনীয় সমন্বয়গুলি সহ), সুতরাং আমদানি ব্যতীত আর কোনও চেষ্টা করার প্রয়োজন নেই।