PyQt

از Pythoni.ca

پرش به: ناوبری, جستجو
این نوشته (PyQt) بخشی از کتاب عصر پایتون می باشد .
کتاب یک بایت از پایتون نکته ها و ترفند ها ماژول ها نمونه پروژه منابع آموزشینرم افزارهای جانبیکتابخانه‌های داخلی و خارجی پرسش و پاسخ

فهرست مندرجات

PyQt چیست ؟

PyQt در حقیقت مجموعه ای از ابزار های زبان برنامه نویسی پایتون بمنظور استفاده از فریم ورك برنامه سازی Qt می باشد . كیوتی خود مجموعه ای از كتابخانه های ++C به همراه ابزار های مورد نیاز برای توسعه برنامه های كامپیوتری می باشد . كیوتی شامل مجموعه ای از ابزار های مورد نیاز برای برنامه نویسی رابط كاربری ، شبكه ، چند نخی ، یونیكد ، پردازش متن ، پایگاه داده ، SVG ، اپن جی ال (OpenGL) ، ایكس ام ال (XML) و ... می باشد . ابزار PyQt تعداد 440 عدد از كلاس ها و كتابخانه های نوشته شده با زبان سی پلاس پلاس را بصورت ماژول برای پایتون فراهم كرده است .

در حقیقت PyQt پل و رابطی هست بین ابزار بسیار قدرتمند كیوتی به همراه كتابخانه هایی بسیار گسترده با زبان برنامه نویسی تفسیری و آسان پایتون ! با استفاده از این ابزار می توان قدرت ، كارایی و سرعت و سهولت را باهم و كنار هم تجربه نمود .

پایتون و كیوتی هردو امكان اجرا در پلتفرم ها و سیستم عامل های مختلف را دارا می باشد . بنا براین PyQt نیز مولتی پلتفرم بوده و وابسته به نرم افزار یا سخت افزار خاصی نیست .

اجزا تشكیل دهنده PyQt

ماژول ها

PyQt شامل زیرمجموعه ای از ماژول های مختلف می باشد كه هر بخشی وظیفه خاصی را بر عهده دارد . از بخش های مهم PyQt می توان موارد زیر را نام برد :

  • QtCore : این ماژول شامل كلاس ها غیر گرافیكی بوده و به عبارتی دیگر هسته مركزی می باشد كه بخش های مهمی چون حلقه وقایع (event loop) و مكانیسم سیگنال و اسلات (Signal/Slot) را شامل می شود .
  • QtGui : این بخش شامل همه كلاس های گرافیكی می باشد .
  • QtNetwork : این ماژول شامل كلاس هایی برای ساخت برنامه های سمت سرور یا كلاینت (سرویس دهنده و سرویس گیرنده) بر پایه پروتكل های TCP یا UDP می باشد . همچنین این بخش شمال كلاس های كلاینت FTP ، HTTP و همچنین جستجوی DNS می باشد .
  • QtOpenGL این ماژول امكان ایجاد و كار بر روی تصاویر سه بعدی با استفاده از اپن جی ال را فراهم می كند .
  • QtScript : با استفاده از این ماژول برنامه های نوشته شده قادر به اجرا اسكریپت های جاوا خواهند بود . در حقیقت با استفاده از این روش امكان توسعه و اسكریپت نویسی برای كاربران فراهم می شود .
  • QtSql : وظیفه این ماژول ایجاد ارتباط با پایگاه داده های مبتنی بر SQL می باشد . همچنین این ماژول شامل مدیر دیتابیس SQLite می باشد .
  • QtSvg : این ماژول شامل توابعی برای نمایش فایل هایی با فرمت SVG یا Scalable Vector Graphics است.
  • QtTest : این ماژول شامل توابعی برای اعمال تست بر روی اجزا برنامه نوشته شده با پایتون و كیوتی می باشد .
  • QtXml : این ماژول شامل كلاس هایی می باشد كه رابط های SAX و DOM را برای تجزیه كننده XML كیوتی فراهم می كنند .
  • QtAssistant‌ : با استفاده از این ماژول می توان نرم افزار Qt Assistant را در برنامه نوشته شده با پایتون و كیوتی درونی سازی كرده و در نتیجه مستندات برنامه را به همراه آن و بدون نیاز به ایجاد بخشی جداگانه در خود برنامه درونی سازی نمود .
  • QtDesigner : توسط این ماژول امكان توسعه طراح كیوتی توسط PyQt فراهم خواهد شد . برای مثال می توان افزونه یا یك عنصر جدید در PyQt ایجاد و از آن همانند سایر اشیا گرافیكی (Widget) در محیط طراح استفاده كرد .
  • QAXContainer : با استفاده از این ماژول برنامه نوشته شده قادر خواهد بود به اشیا COM و اكتیو ایكس (ActivX) ارتباط برقرار كند .
  • Qt : این ماژول شامل تمامی موارد ذكر شده در بالا می باشد . با اضافه كردن این ماژول دیگر نیازی نیست برنامه نویس ماژول شامل تابع مورد نیاز خود را بداند . از معایب این روش لود شدن همه فریم ورك كیوتی می باشد كه باعث اشغال زیاد حافظه می گردد .
  • uic : این ماژول شامل كلاس هایی برای كار با فایل های ui می باشد كه توسط طراح (Designer) كیوتی ایجاد می گردد ، می باشد .

ابزار

PyQt همچنین شامل ابزاری سودمند می باشد كه در روند برنامه نویسی بسیار مهم و حیاطی بوده و معمولا باعث سهولت بسیار برنامه نویسی می شوند . از جمله مهمترین و پركاربرد ترین این ابزار در زیر آورده شده اند . به مرور و در درس های بعدی با روش استفاده این ابزار بیشتر آشنا خواهید شد .

  • pyuic4 : معادل ابزار uic می باشد و بر گرفته از عبارت Python User Interface Compiler v4 می باشد . این ابزار فایل های رابط گرافیكی ایجاد شده توسط ابزار Qt Designer را به سورس كد پایتون تبدیل می كند .
  • pyrcc4 : این ابزار معادل rcc فریم ورك كیوتی و بر گرفته از عبارت Python Resource Compiler v4 می باشد . توسط این ابزار امكان تبدیل فایل های منبع (resource) به سورس پایتون فراهم می شود . با استفاده از این ابزار می توان فایل هایی چون عكس ، آیكن یا هر فایل دلخواه را به سورس پایتون تبدیل و در برنامه یا فایل اجرایی مستقل (مثلا exe در ویندوز) درونی سازی نمود .
  • pylupdate4 : این ابزار نبز معادل lupdate است و برای ایجاد یا بروز رسانی فایل لغات برنامه مورد استفاده قرار می گیرد . با استفاده از این ابزار می توان فایل ts ایجاد و سپس با استفاده از نرم افزاری چون Qt Linguist آنها را ترجمه و در برنامه استفاده كرد . این ابزار روند توسعه برنامه های چند زبانه را بسیار آسان می كند .

نصب PyQt

نصب در ویندوز

نصب PyQt در ویندوز بسیار آسان می باشد .

در سیستم عامل ویندوز برخی مواقع نیاز هست مسیر نصب شده به Environment Variables یا متغییرهای محیطی PATH اضافه گردد . برای اینكار مسیر مفسر پایتون و در صورت نیاز كیوتی را به این متغییر اضافه كنید . برای ویرایش متغییر PATH می توانید با راست كلیك بر روی My Computer و انتخاب گزینه Properties به تب Advanced و سپس كلیك روی Environment Variables به متغییر های محیطی دسترسی داشته باشد .


برای نصب فایل باینری نصاب را از سایت رسمی سایت PyQt دانلود و نصب كنید . این فایل باینری با حجم تقریبی 16 مگابایت شامل ابزار های زیر می باشد .

  • PyQt
  • (Qt (with database support for SQLite3 and ODBC
  • Qt Designer
  • Qt Linguist
  • Qt Assistant
  • pyuic4
  • pylupdate4
  • lrelease
  • pyrcc4
  • QScintilla
  • PyQwt
  • Qwt
  • eric IDE

روند نصب بسیار آسان بوده و این فایل تمامی ابزار ها و فایل های مورد نیاز را نصب خواهد كرد .

نصب در لینوكس

مراحل نصب در لینوكس می تواند متفاوت باشد . برخی ترجیح می دهند آخرین بسته ها را دریافت و كامپایل كنند و برخی برای فرار از مشكلات كامپایل ترجیح می دهند از نصاب های سیستم عامل استفاده كنند . در حالت كلی بسته های زیر (به ترتیب) باید روی سیستم نصب گردند .

  • Qt كه می تواند شامل ابزاری Qt Designer ، Qt Assistant و ... بوده یا تنها كتابخانه های اصلی باشد .
  • SIP
  • PyQt

ممكن است بسته به سیستم عامل و توزیع های مختلف اسامی بسته ها متفاوت باشد ! برای مثال نام بسته PyQt در مخازن ابونتو python-qt4 می باشد ! اگر در مراحل نصب یا كامپایل مشكلی بود در انجمن های سایت مطرح كنید .

مطالب دیگر