آنچه در این صفحه می خوانید:
- پایکیوت (PyQt) چیست؟
- کاربرد پایکیوت (PyQt)
- ویژگی های پایکیوت (PyQt)
- مقایسه PyQt و Tkinter
- مثال پایکیوت (PyQt)
پایکیوت (PyQt) چیست؟
PyQt یک ابزار اتصال پایتون و کراس پلتفرم GUI است که به عنوان افزونه پایتون پیاده سازی شده است. PyQt نرم افزاری رایگان است که توسط شرکت انگلیسی Riverbank Computing ساخته شده است. PyQt یک ابزار ویجت GUI است. این رابط پایتون برای Qt، یکی از قدرتمندترین و محبوب ترین کتابخانه GUI کراس پلتفرم است. PyQt ترکیبی از زبان برنامه نویسی پایتون و کتابخانه Qt است. یادگیری مقدماتی آن شما را در ایجاد برنامه های گرافیکی با کمک PyQt یاری خواهد کرد. PyQt حدود 440 کلاس و بیش از 6000 کارکرد و روش از جمله:
- مجموعه قابل توجهی از ویجت های GUI
- کلاس هایی برای دسترسی به پایگاه های داده SQL از جمله ODBC ،MySQL ،PostgreSQL ،Oracle ،SQLite
- QScintilla، ویجت ویرایشگر متن ارزشمند مبتنی بر Scintilla
- ویجت های آگاهی داده که بطور خودکار از یک پایگاه داده جمع می شوند.
- یک تحلیلگر XML
- پشتیبانی SVG
- کلاس هایی برای تعبیه کنترل های ActiveX در ویندوز (فقط در نسخه تجاری)
برای تولید خودکار این اتصالات، فیل تامپسون ابزار SIP را تولید کرد که در پروژه های دیگر نیز مورد استفاده قرار می گیرد. در آگوست 2009، نوکیا، صاحبان آن زمان ابزار Qt ،PySide را منتشر کردند و عملکردهای مشابهی را ارائه دادند، اما تحت LGPL، پس از عدم دستیابی به توافق با Riverbank Computing برای تغییر شرایط صدور مجوز خود، LGPL را به عنوان مجوز جایگزین در نظر گرفت. PyQt نسخه 4 با هر دو Qt 4 و Qt 5 بدون مشکل کار می کند. نسخه PyQt 5 فقط از Qt نسخه 5 پشتیبانی می کند و از ویژگی هایی که در Qt5 وجود دارد پشتیبانی می کند.
کاربرد پایکیوت (PyQt)
PyQt API شامل بیش از 400 کلاس است. کلاس QObject در صدر سلسله مراتب کلاس است. این کلاس پایه کلیه اشیاء Qt است. علاوه بر این، کلاس QPaintDevice کلاس پایه برای همه اشیاء است که می توانند رنگ شوند. کلاس QApplication تنظیمات اصلی و کنترلی یک برنامه GUI را مدیریت می کند. این شامل حلقه رویداد اصلی است که در آن رویدادهای ایجاد شده توسط عناصر پنجره و منابع دیگر پردازش و ارسال می شوند. همچنین تنظیمات گسترده ای از سیستم و برنامه را کنترل می کند.
کلاس QWidget، مشتق از کلاس های QObject و QPaintDevice کلاس پایه برای همه اشیاء رابط کاربری است. کلاس های QDialog و QFrame نیز از کلاس QWidget گرفته می شوند. آنها سیستم فرعی خود را دارند. نصب PyQt با یک ابزار سازنده GUI به نام Qt Designer همراه است. با استفاده از رابط درگ و دراپ ساده، رابط کاربری گرافیکی را بدون نیاز به نوشتن کد می توانید به سرعت ایجاد کنید. اما، این یک IDE مانند Visual Studio نیست. از این رو، Qt Designer امکانات لازم برای اشکال زدایی و ساخت برنامه را ندارد. ایجاد رابط کاربری گرافیکی با استفاده از Qt Designer با انتخاب یک پنجره سطح بالا برای برنامه شروع می شود. ساخت برنامه های کاربردی GUI با استفاده از ابزار Qt Designer نسبتاً زمان کمتری نسبت به کدهای ویجت دارد. این یکی از سریعترین و آسان ترین راه ها برای ایجاد GUI است. رویکرد عادی نوشتن کد حتی برای ویجت ها و همچنین ویژگی ها است. اما با استفاده از Qt Designer، می توانید ویجت ها را بکشید و رها کنید، که در ایجاد و توسعه برنامه های بزرگ، بسیار مفید است.
ویژگی های پایکیوت (PyQt)
در اینجا، ویژگی های مهم PyQt وجود دارد:
- رابط کاربری گرافیکی
- پایگاه های داده SQL
- ابزارهای وب
- پردازش XML
- شبکه سازی
این ویژگی ها را می توان برای ایجاد UI های پیشرفته و همچنین برنامه های مستقل ترکیب کرد. بسیاری از شرکت های بزرگ در تمام صنایع از Qt استفاده می کنند. برخی از نمونه ها ال جی، مرسدس، AMD، پاناسونیک، هارمن و غیره هستند.
مقایسه PyQt و Tkinter
Tkinter یک ابزار GUI با اوپن سورس و استاندارد برای Python است. Tkinter یک بند در اطراف رابط گرافیکی TCL/TK است. Tkinter به دلیل سادگی محبوبیت زیادی دارد و جامعه ای بسیار قدیمی و فعال دارد. همچنین، بیشترین توزیع باینری پایتون در آن وارد شده است. Tkinter برای سیستم عامل های Macintosh ،Windows و Linux بسیار قابل استفاده است. برای شروع کار ابزار خوبی است زیرا Tkinter بیشتر برای برنامه های GUI در مقیاس کوچک ترجیح داده می شود.
ابزار PyQt بسته به فریمورک QT است. PyQt یکی از محبوب ترین ابزار های کراس پلت فرم Python است که بیشتر از ++C کتابخانه QT را برای فریمورک QT پیاده سازی می کند. PyQT می تواند برای برنامه های کاربردی GUI با مقیاس بزرگ مورد استفاده قرار گیرد، زیرا برای توسعه رابط کاربری گرافیکی هیچ زمانی لازم نیست. به سادگی می توانید با استفاده از Qt Designer، پنجره را طراحی کرده و کد UI را به راحتی تبدیل کنید به کد پایتون و پس از آن می تواند به هر ویجتی متصل شود. اما در مرحله آغاز یادگیری PyQt، نوشتن کد به صورت دستی همیشه یک عمل خوب است، زیرا اینگونه است که شما واقعاً یاد می گیرید. اگر شما در حال توسعه برنامه های جدی هستید، به خصوص اینکه در حا یادگیری هستید و در صورت نیاز به کار مستقیم با Qt به زبان های دیگر نیز ترجمه کنید، Qt احتمالاً بهترین ابزار بین رابط کراس پلتفرم موجود در حال حاضر است.
مثال پایکیوت (PyQt)
کد زیر در نسخه PyQt4 یک پنجره کوچک روی صفحه نشان می دهد.
#! /usr/bin/python3
# Character Encoding: UTF-8
#
# Here we provide the necessary imports.
# The basic GUI widgets are located in QtGui module.
import sys
from PyQt4.QtGui import QApplication, QWidget
# Every PyQt4 application must create an application object.
# The application object is located in the QtGui module.
app = QApplication(sys.argv)
# The QWidget widget is the base class of all user interface objects in PyQt4.
# We provide the default constructor for QWidget. The default constructor has no parent.
# A widget with no parent is called a window.
root = QWidget()
root.resize(320, 240) # The resize() method resizes the widget.
root.setWindowTitle("Hello, World!") # Here we set the title for our window.
root.show() # The show() method displays the widget on the screen.
sys.exit(app.exec_()) # Finally, we enter the mainloop of the application.