পাইকিউটি 4 এবং পাইসাইড উভয়েরই কিউটি এপিআই-তে খুব অনুরূপ ম্যাপিং রয়েছে। তবে কিছু পার্থক্য রয়েছে, আমার মতামত যা সম্পর্কে নীচে বর্ণিত:
রক্ষণাবেক্ষণ
তারা উভয় ভাল রক্ষণাবেক্ষণ করা হয়। পাইসাইড এই মুহুর্তে আরও অনেক নিয়মিত প্রকাশ প্রকাশ করে: আমি মনে করি এটি পাইকিউটি 4 এর তুলনায় Qt এর সাথে আরও জড়িত এবং একটি নতুন প্রকল্প হিসাবে এই মুহুর্তে আরও সক্রিয় সম্প্রদায় রয়েছে। তবে এটি কেবল আমার ধারণা এবং এটি ভুলও হতে পারে।
পাইকিউটি 4-তে বাণিজ্যিক সহায়তার উপলভ্য বিকল্প রয়েছে (এটি পাইসাইডের জন্য সত্য কিনা তা আমি জানি না)।
লাইসেন্স
পাইকিউটি 4 বাণিজ্যিক লাইসেন্স বা জিপিএল এর অধীনে প্রকাশিত হয়েছে ; পাইসাইড এলজিপিএল-এর অধীনে প্রকাশিত হয়েছে । বাণিজ্যিক অ্যাপ্লিকেশনগুলির জন্য, এটি একটি উল্লেখযোগ্য পার্থক্য।
এপিআই এবং পাইথন সংস্করণ
পাইকিউটি 4 দুটি পৃথক এপিআই সমর্থন করে। পাইথন ২.x অ্যাপ্লিকেশনগুলির জন্য এপিআই সংস্করণ ১ ডিফল্ট এবং পাইথন ৩.x অ্যাপ্লিকেশনগুলির জন্য এপিআই সংস্করণ ২ ডিফল্ট।
PySide শুধুমাত্র একটি এপিআই, যা PyQt4 এর API সংস্করণ 2. API সংস্করণ 2 (বা PySide এপিআই) এর মোটামুটিভাবে সমতূল্য সমর্থন করে অনেক সঙ্গে PyQt4 এর API সংস্করণ 1. API সংস্করণ 1 তুলনায় আপনি যে পাইথন কাস্ট কোড অনেক আছে কাজ করতে সুন্দর স্ট্রিং QtCore.QString
গুলি এস এবং আবার ফিরে। এপিআই সংস্করণ ২ (এবং পাইসাইড) এ আপনি কেবল অজগর স্ট্রিং ব্যবহার করেন। আপনি উভয় সাথে খেলতে চাইলে পাইকিউটি 4 এবং পাইসাইডের মধ্যে স্যুইচ করার সহজ উপায়টির জন্য নীচে দেখুন।
আমি যে বেশিরভাগ কোড লিখি তা পাইকুইটি 4 এবং পাইসাইডে সমানভাবে কাজ করে বলে মনে হচ্ছে। .তিহাসিকভাবে, আমি পাইথন জিইআইআই-এর জন্য আমি সর্বদা পাইকিউ 4 ব্যবহার করেছি তবে এখন আমি যে নতুন নতুন জিনিস লিখি তা পাইসাইড ব্যবহার করে (মূলত আরও নমনীয় লাইসেন্সের কারণে)। আমি অবশ্যই আপনাকে উভয় চেষ্টা করার পরামর্শ দিচ্ছি এবং কীভাবে আপনি এটি পেয়েছেন তা দেখুন। আপনি যদি QtVariant.py (নীচে) ব্যবহার করেন তবে তাদের মধ্যে স্যুইচিং তুচ্ছ এবং আপনি যখন সিদ্ধান্ত নেবেন তখন কেবল একটি ফাইল থাকবে যা আপডেটের প্রয়োজন।
নথিপত্র
পাইকিউ 4 এবং পাইসাইড উভয়ের জন্য ডকুমেন্টেশনগুলি মূল কিউটি ডকুমেন্টেশন থেকে স্বয়ংক্রিয়ভাবে উত্পাদিত । আমার মতে পাইসাইড ডকুমেন্টেশনগুলি আপনি আসলে যা ব্যবহার করেন তার একটি আরও ভাল উপস্থাপনা, তবে বাস্তবে আমি যেভাবেই হোক Qt ডকুমেন্টেশন ব্যবহার করি (এটি সি ++ ডকুমেন্টেশনটিকে মানসিকভাবে পাইথনে অনুবাদ করা বেশ সহজ)।
বাহ্যিক গ্রন্থাগারসমূহ
আপনি যদি বাহ্যিক গ্রন্থাগার ব্যবহার করছেন তবে কিছু পাইসাইড নিয়ে এখনও কাজ করেন না। সত্য কথা বলার জন্য আপনাকে পাইসাইটের সাথে কাজ করার দরকার নেই, তবে বেশ কয়েক বছর আগে আমি এমন কিছু কোড লিখেছিলাম যাতে টুইস্ট ব্যবহার করা হয়েছিল (Qt চুল্লি সহ) এবং ম্যাটপ্ল্লোলিব এবং এটি আমাকে পাইসাইটের পরিবর্তে পাইকিউটি 4 ব্যবহারের লাইনটি নীচে নামিয়ে দিয়েছে । আমি মনে করি যে সম্ভবত এই লাইব্রেরিগুলিকে উভয়ই সমর্থন করার জন্য আপডেট করা হবে তবে আমি পরীক্ষা করে দেখিনি।
পাইকিউটি 4 বা পাইসাইটের সাথে কোড তৈরির কাজ work
ধরে নিই যে আপনি পাইথন ২.x ব্যবহার করছেন, আপনি QtVariant.py বানিয়ে এবং ব্যবহার করে পাইয়েসাইড এবং পাইকিউটি 4 উভয়ের সাথে আপনার কোডটি মোটামুটি সহজেই তৈরি করতে পারেন :
from QtVariant import QtGui, QtCore
বা যাই হোক না কেন. আমি যে QtVariant.py ব্যবহার করি তা দেখতে এই রকম দেখাচ্ছে:
import sys
import os
default_variant = 'PySide'
env_api = os.environ.get('QT_API', 'pyqt')
if '--pyside' in sys.argv:
variant = 'PySide'
elif '--pyqt4' in sys.argv:
variant = 'PyQt4'
elif env_api == 'pyside':
variant = 'PySide'
elif env_api == 'pyqt':
variant = 'PyQt4'
else:
variant = default_variant
if variant == 'PySide':
from PySide import QtGui, QtCore
# This will be passed on to new versions of matplotlib
os.environ['QT_API'] = 'pyside'
def QtLoadUI(uifile):
from PySide import QtUiTools
loader = QtUiTools.QUiLoader()
uif = QtCore.QFile(uifile)
uif.open(QtCore.QFile.ReadOnly)
result = loader.load(uif)
uif.close()
return result
elif variant == 'PyQt4':
import sip
api2_classes = [
'QData', 'QDateTime', 'QString', 'QTextStream',
'QTime', 'QUrl', 'QVariant',
]
for cl in api2_classes:
sip.setapi(cl, 2)
from PyQt4 import QtGui, QtCore
QtCore.Signal = QtCore.pyqtSignal
QtCore.QString = str
os.environ['QT_API'] = 'pyqt'
def QtLoadUI(uifile):
from PyQt4 import uic
return uic.loadUi(uifile)
else:
raise ImportError("Python Variant not specified")
__all__ = [QtGui, QtCore, QtLoadUI, variant]