PyQt چیست و چه کاربردی دارد؟ – از صفر تا صد
![PyQt چیست و چه کاربردی دارد؟ – از صفر تا صد](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2024/08/pyqt-gui-playful-representation.jpg.webp)
فریمورک PyQt مجموعهای از ویجتهای مخصوص ساخت رابط کاربری گرافیکی است. این مجموعه ابزار یکی از رابطهای پایتون برای کار با فریمورک Qt و یکی از قدرتمندترین و مشهورترین کتابخانههای گرافیکی پایتون است. پکیج مخصوص توسعه نرمافزار PyQt توسط شرکت RiverBank تهیه و پشتیبانی میشود. این شرکت همیشه جدیدترین محصولات خود را در وب سایت رسمی خودش قرار میدهد، بنابراین میتوانیم آخرین نسخه فریمورک PyQt را از آنجا دانلود کنیم. در این مطلب از مجله فرادرس میآموزیم که PyQt چیست و چه کارهایی میتوان با آن انجام داد. علاوه بر این ماژولهایی هم برای کار با XML و SVG و SQL به ترتیب مانند ماژولهای QtXml و QtSvg و QtSql وجود دارد.
پایتون دارای فریمورکهای زیادی برای تولید اپلیکیشنهای گرافیکی است. PyQt مجموعهای از ماژولها است که شامل تعداد زیادی از کلاسها و توابع میشود. به عنوان مثال، ماژول QtCore شامل هیچ ویژگی از نوع رابط کاربری گرافیکی برای انجام کارهایی مانند کار با فایلها و پوشهها نمیشود، در حالی که ماژول QtGui دارای همه کنترلهای گرافیکی است. در ادامه مطلب متوجه میشویم که PyQt چیست و مثال سادهای را از روش کار با این کتابخانه گرافیکی پایتون میبینیم.
PyQt چیست؟
PyQt یکی از کتابخانههای گرافیکی پایتون است که برای ساخت و توسعه اپلیکیشنهای دارای رابط گرافیکی، مانند اپلیکیشنهای دسکتاپ یا اپلیکیشنهای تحت وب بهکار برده میشود. PyQt فریمورک چند پلتفرمی Qt را که با زبان برنامه نویسی ++C نوشته شده است، با زبان پایتون ترکیب میکند.
برای اینکه بتوانید در سطح بسیار عالی و پیشرفته با این کتابخانه پایتون کار کنید نیاز به دوره حرفهای و کاملی در ارتباط با PyQt دارید. یکی از بهترین پیشنهادات ممکن، تماشا و پیشروی با فیلم آموزش رابط گرافیکی پای کیوت PyQt در پایتون از فرادرس است. این دوره بسیار کامل و پیشرفته طراحی شده و از ابتدا تا انتها به اندازه بسیار زیادی تکنیکهای استفاده از این کتابخانه را پوشش میدهد. جهت راحتی کار مخاطبان فرادرس لینک مربوط به این دوره را در ادامه قرار دادهایم.
Qt چیزی بیش از مجموعه ابزاری برای ساخت رابط کاربری گرافیکی است. این پکیج شامل ویژگیهایی برای کار با سوکتهای شبکه، پردازشهای نخی، Unicode، عبارات منظم، پایگاههای داده SQL، مرورگرهای اینترنتی، SVG و XML و OpenGL و فریمورکهای چندرسانهای و مجموعه گستردهای از سایر ویجتهای مخصوص GUI میشود.
![تصویری رنگی از کدهای مختلف روی یک مانیتور که با سایر کدها احاطه شده است](https://blog.faradars.org/wp-content/uploads/2024/08/code-snippets-in-vibrant-colors-revised.jpg)
پایتون هم زبان قدرتمند و شیءگرایانهای است. سادگی پایتون کمک کرده که فرایند یادگیری آسانی داشته باشد در حالی که با کمک قدرت این زبان برنامه نویسی میتوان برنامههای بزرگ و پیچیدهای را طراحی کرد. به عنوان زبان مفسری، پایتون عملکرد برنامهنویسها را هم افزایش میدهد.
قدرت پایتون از مجموعه گسترده ماژولها و افزونههای اختصاصی آن ایجاد میشود. این ماژولها کاربردهای زیادی در زمینه وظایف مربوط به سرورهای HTTP، برنامههای تجزیه XML، دسترسی به پایگاه داده، رابطهای گرافیکی کاربری و غیره انجام میدهند.
PyQt با ترکیب مزایای Qt و پایتون به برنامهنویسان کمک میکند که از قدرت Qt در کنار سادگی پایتون بهرهمند شوند.
آموزش مطالب پیشرفته پایتون با کمک فرادرس
قبل از اینکه بدانیم PyQt چیست باید مهارت لازم برای کار با پایتون را داشته باشیم. به همین صورت برای کار کردن با پایتون و حل مسائل مربوط به دنیای واقعی نیز باید با تکنیکها و مفاهیم پیشرفته پایتون آشنا شد. بدست آوردن این شناخت به خودی خود از روی منابع مطالعاتی روند بسیار مشکلی است. استفاده از کلاسهای مخصوص و حضوری هم علاوه بر اینکه احتمال پیدا شدن کلاس منطبق با مطلب مورد نیاز ما زیاد نیست، مشکلات دیگری نیز دارد. به عنوان مثال میتوان به فاصله غیر قابل پیشبینی آموزشگاه مناسب تا محل کار یا منزل اشاره کرد. یا اینکه آیا زمان کلاسها با وقت آزاد دانشجویان همخوانی دارد یا نه.
![مجموعه آموزش برنامه نویسی پایتون Python](https://blog.faradars.org/wp-content/uploads/2024/08/python-learning-collection.png)
اما فرادرس به عنوان یکی از فعالترین تولیدکنندگان محتوی آموزشی کشور به صورت مستقیم و دائمی در دسترس همه دانشجویان قرار دارد. از هر جای دنیا قابل دسترسی است و در هر زمان میتوان از آموزشهای موجود استفاده کرد. فیلمهای آموزشی پایتون فرادرس یکی از پر مخاطبترین فیلمهای آموزشی و دورههای مربوط به پایتون در کشور هستند. در بخش پایین چند مورد از فیلمهای فرادرس را معرفی کردهایم. البته این فیلمها به منظور پوشش سطوح حرفهای آموزش پایتون طراحی و تولید شدهاند. در صورت نیاز میتوانید بر روی تصویر بالا کلیک کرده و به صفحه اصلی این مجموعه آموزش هدایت شوید. در آنجا دورههای مربوط به سطوح سادهتر یا حرفهای تر پایتون نیز قابل دسترسیاند.
- فیلم آموزش فریمورک تحت وب Django با پایتون در فرادرس
- فیلم آموزش بازی سازی در پایتون با کتابخانه Pygame با فرادرس
- فیلم آموزش ساختمان داده ها با پایتون با فرادرس
- فیلم آموزش برنامه نویسی شی گرا در پایتون با فرادرس
- فیلم آموزش عبارت های منظم Regex در پایتون با فرادرس
ویژگی های PyQt چیست؟
برای اینکه به صورت دقیقتری بدانیم PyQt چیست میتوانیم از فیلمهای آموزشی بسیار خوبی که در این زمینه تهیه شدهاند استفاده کنیم. یکی از این فیلمها که به صورت خلاصه توضیح خوبی درباره PyQt میدهد، فیلم رایگان آموزش رابط گرافیکی PyQt پایتون با جادی از فرادرس است. برای اینکه راحتتر به این فیلم دسترسی داشته باشید، لینک مربوط به آن را در ادامه قرار دادهایم.
کتابخانه PyQt دارای ویژگیها و ابزارهای مهمی است که باعث شده بین رقبای خود برجسته دیده شود. این فریمورک شامل بیش از ۶۰۰ کلاس است که محدودهای از ویژگیها را مانند موارد زیر پوشش میدهند.
- رابطهای کاربری گرافیکی
- پشتیبانی و ارتباط با پایگاههای داده
- ابزار مخصوص توسعه برنامههای تحت وب یا وبسایتها
- ابزار مخصوص پردازش XML
- شبکهسازی
- و غیره
همچنین PyQt با همه سیستم عاملهای مشهور سازگار است. به عنوان مثال میتوانیم از ویندوز، لینوکس و Mac OS نام ببریم.
لایسنس های PyQt
مانند هر ابزار دیگری در دنیای کامپیوتر، قبل از استفاده از این تکنولوژی نیز بسیار مهم است که بدانیم لایسنس PyQt چیست. این کتابخانه با دو لایسنس جداگانه عرضه میشود. نسخهای از این کتابخانه تحت لایسنس GPL و نسخه دیگر با لایسنس تجاری به بازار عرضه شده است. اگر هدف از استفاده PyQt ساخت برنامههای تجاری باشد باید از نسخه تجاری و خریداری شده این پکیج استفاده کنیم. در ضمن توجه کنید که لایسنس PyQt مورد استفاده باید با لایسنس Qt همخوان باشند. همچنین اگر از PyQt با «مجوز عمومی» (The General Public License | GPL) استفاده کنیم، کدهای تولید شده هم باید از این لایسنس پیروی کنند.
در این مطلب از کتابخانه PyQt5 استفاده میکنیم. بنابراین از الان به بعد هر اشارهای به PyQt در متن را به عنوان PyQt5 در نظر بگیرید. PyQt5 بر اساس Qt نسخه ۵ ساخته شده و شامل کلاسهایی برای پشتیبانی از طراحی و استفاده رابط کاربری گرافیکی است.
روش نصب PyQt چیست؟
در زمان نصب PyQt به روی سیستم یا محیط توسعه نرمافزار، روشهای زیادی در دسترس هستند که باید از بین آنها انتخاب کنیم.
- اولین روش نصب و راهاندازی از طریق منبع اصلی و خود سایت RiverBank است. اما این گزینه کمی پیچیده و سخت است، بنابراین ترجیح میدهیم که از انجام این روش صرف نظر کنیم. به هرحال در صورت علاقه به امتحان این روش، بهتر است که به مستندات رسمی کتابخانه رجوع کنید.
- روش بعدی استفاده از Wheel-های باینری است. استفاده از Wheel-ها روش بسیار پرطرفداری برای مدیریت فرایند نصب کتابخانههای پایتون است. البته باید در نظر داشته باشیم که استفاده از Wheel برای نصب PyQt5 فقط از نسخه پایتون ۳.۵ به بالا در دسترس است. برای سیستم عاملهای مختلف مانند لینوکس ۶۴بیتی، macOS و ویندوز ۳۲بیتی و ۶۴بیتی Wheel-های مخصوص به هر کدام وجود دارد.
این Wheel-ها شامل کپیهایی از کتابخانههای Qt با ورژنها بالاتر هستند. بنابراین نیازی به نصب این کتابخانهها به صورت مجزا وجود ندارد.
- روش سوم استفاده از pip است. این روش تقریبا شبیه به استفاده از Wheel کار میکند و معمولا پر طرفدارترین روش بین کاربران پایتون است.
- روش چهارم هم استفاده از سامانههای مدیریت پیکیجهای پایتون مخصوص نسخههای توزیع شده لینوکس و macOS است. برای نصب در ویندوز میتوانیم از فایل باینری «exe.» استفاده کنیم.
- روش پنجم و نهایی نیز استفاده از توزیع آناکوندا به منظور نصب کتابخانه PyQt به روی سیستم است.
در بخش بعد یکی از روشهای بالا را برای نصب کتابخانه PyQt5 به روی کامپیوتر انتخاب کردهایم.
نصب PyQt با استفاده از pip
برای نصب هر ماژولی در پایتون، یکی از بهترین روشها استفاده از Pip است. Pip فریمورکی است که برای مدیریت نصب پکیجها و ماژولهای پایتون از روی مخزنهای عمومی و مورد اعتماد بهکار برده میشود. از آنجا که فرایند نصب Pip به صورت خودکار و همزمان با پایتون به روی سیستم اجرا میشود، پس نیاز به نصب جداگانه ندارد. بنابراین میتوانیم بهسادگی با استفاده از Pip و بهکارگیری دستور مرتبط با آن، ماژول PyQt5 را از درون خط فرمان ویندوز یا ترمینال لینوکس نصب کنیم.
سینتکس مربوط به نصب کتابخانه PyQt نسخه ۵ به صورت زیر است. برای نصب سایر نسخهها هم از سینتکسی مشابه با کد زیر استفاده میکنیم.
$ python.exe -m pip install pyqt5
معمولا بدون اعلام شماره نسخه نیز میتوان ماژولها را نصب کرد. در این صورت Pip به صورت پیشفرض، آخرین نسخه از ماژول مورد نظر را به روی سیستم نصب میکند.
تایید عملیات نصب
به محض اینکه ماژول مورد نظر نصب شد، بهتر است که موفقیت عمل نصب را بررسی کنیم. برای انجام این کار، فایل پایتون خالی با نام دلخواه verify.py ساخته و دستور import را به صورتی که در زیر نمایش داده شده، مینویسیم.
1import pyqt5
الان فایل verify.py با دستور نمایش داده شده در بالا را ذخیره میکنیم. سپس با اجرای فرمان زیر در خط فرمان یا ترمینال، نتیجه اجرای فایل را بررسی میکنیم.
$ python verify.py
اگر اجرای فایل پایتون با دستور بالا منجر به برگشت دادن خطا نشد، در نتیجه، ماژول به صورت صحیح و سالم بر روی سیستم نصب شده است. اما در مواردی که خطای استثنا توسط پایتون در خط فرمان برگشت داده شود، باید فرایند نصب ماژول را تکرار کنیم. توصیه شده که در صورت روبهرو شدن با خطا به مستندات رسمی کتابخانه PyQt مراجعه کنیم.
تا به اینجای مطلب با کتابخانه PyQt آشنا شدیم. همچنین دانستیم که بهترین روش نصب PyQt چیست. در ادامه مطلب، اپلیکیشن اولیه و سادهای را با کمک PyQt ایجاد میکنیم.
ساخت اپلیکیشن ساده PyQt
قبل از شروع این بخش و اجرای پروژه سادهای با PyQt باید اشاره کنیم پایتون ابزارهای زیادی برای ساخت رابطهای گرافیکی دارد. یکی از بهترین روشها برای آشنایی با این ابزار تماشای فیلم آموزش رابط های گرافیکی پایتون از فرادرس است. برای کمک به مخاطبان فرادرس لینک مربوط به این فیلم را در ادامه قرار دادهایم.
در ادامه مطلب، برای دانستن اینکه سادهترین روش استفاده از PyQt چیست به پیادهسازی مثال سادهای پرداختهایم. از آنجا که در مرحله قبل، موفق شدیم کتابخانه PyQt را به صورت صحیح نصب کنیم، اکنون به راحتی میتوانیم به طراحی و ساخت پروژههای مورد نظر خودمان بپردازیم. در این بخش اپلیکیشنی را برای نمایش عبارت «Hello, World! » با استفاده از پایتون و PyQt ایجاد میکنیم.
![مار بزرگ بر روی کامپیوتری که فضای پارک را اشغال کرده است.](https://blog.faradars.org/wp-content/uploads/2024/08/An-illustration-shows-a-large-open-laptop-with-a-colorful-Python-code-editor-on-the-screen.jpg)
بهتر است که در ابتدا، مراحل ساخت این اپلیکیشن را به صورت قدمبهقدم در نظر بگیریم.
- مرحله اول: اپلیکیشن QApplication و همه ویجتهای مورد نیاز را از PyQt5.QtWidgets به محیط کدنویسی خود وارد یا import میکنیم.
- مرحله دوم: شیء نمونهای از کلاس QApplication ایجاد میکنیم.
- مرحله سوم: شیء نمونهای هم از رابط گرافیکی کاربری اپلیکیشن ایجاد میکنیم.
- مرحله چهارم: GUI مربوط به اپلیکیشن را نمایش میدهیم.
- مرحله پنجم: حلقه رویداد یا حلقه اصلی اپلیکیشن را اجرا میکنیم.
قبل از شروع به کار و تماشای اینکه روش پیادهسازی پروژه در سادهترین حالت با PyQt چیست لازم به یادآوری است که PyQt فقط یکی از ابزار پایتون برای ساخت رابط کاربری گرافیکی است. پایتون به عنوان زبان برنامهنویسی بسیار قوی دارای ابزار دیگری نیز هست که با مطالعه مطلب معرفی هشت کتابخانه کاربردی از کتابخانه های گرافیکی پایتون در مجله فرادرس میتوانید با همه آنها آشنا شوید. در این صورت متوجه میشوید که مزایا و معایب بقیه ابزار نسبت به کتابخانه PyQt چیست و برای پروژه شما کدام گزینه انتخاب بهتری است.
برای شروع، فایلی به نام intro.py در پوشه اصلی مربوط به محیط کار ایجاد میکنیم. این فایل همان پروژه مورد نظر خواهد بود. سپس باید Widget-های مورد نیاز خود را نیز به این محیط وارد کنیم.
تکه کدی که در ادامه آمده، عملیات توصیف شده در خط قبل را نمایش میدهد. توجه کنید که این کدها درون فایل intro.py نوشته شدهاند.
1import sys
2# importing `QApplication` and all the required widgets
3from PyQt5.QtWidgets import QApplication
4from PyQt5.QtWidgets import QLabel
5from PyQt5.QtWidgets import QWidget
همینطور که مشاهده میشود، در قطعه کد بالا کتابخانه sys را در فایل وارد کردهایم. با کمک این کتابخانه میتوانیم وضعیت مربوط به خروج از اپلیکیشن را مدیریت کنیم. سپس کلاسها و «ویجتها» (Widgets) مورد نیاز را مانند QApplication و QLabel و QWidget از ماژول QtWidgets به محیط کدنویسی خود وارد کردیم.
توجه کنید که خود ماژول QtWidgets زیر مجموعهای از کتابخانه PyQt5 است. برای همین در خط کدهای مربوط به import به صورت PyQt5.QtWidgets نوشته میشود.
الان باید شئی از کلاس QApplication ایجاد کنیم. فرایند ایجاد این شیء را در تکه کد زیر پیادهسازی کردهایم. این خط کدها هم در همان فایل intro.py و بعد از کدهای بالا نوشته میشوند.
1myApp = QApplication(sys.argv)
در قطعه کد بالا، از کلاس QApplication نمونهای به نام myApp ساختهایم. از آنجا که شیء myApp مقداردهی اولیه مربوط به سایر اشیا را هم باید مدیریت کند، لازم است که قبل از هر شیء مرتبط با GUI دیگری ایجاد شود. شیء ساخته شده از کلاس QApplication با آرگومانهای عمومی ارسال شده از طرف خط فرمان هم میتواند کار کند. در نتیجه در هنگام ایجاد myApp لازم است که مانند کد بالا sys.argv را به عنوان پارامتر به کلاس QApplication ارسال کنیم.
توجه: sys.argv شامل لیستی از آرگومانها است. این آرگومانها را میتوان از خط فرمان به اسکریپت پایتون ارسال کرد. اگر اپلیکیشن طراحی شده نیازی به دریافت هیچ آرگومانی از خط فرمان نداشته باشد، میتوانیم بهجای sys.argv از لیست خالی استفاده کنیم. در واقع شیء myApp را به صورت myApp = QApplication([]) تعریف میکنیم.
![جماعتی از کاربران رابطهای گرافیکی در حال کار با لپتاپهای خود هستند. - PyQt چیست](https://blog.faradars.org/wp-content/uploads/2024/08/In-a-simple-bright-illustration-a-school-building-is-shown-with-students-coding-on-laptops-inside.jpg)
مرحله بعدی شامل ساخت «رابط کاربری گرافیکی» (GUI) برای اپلیکیشن است. برای این مثال GUI مورد نظر، بر اساس QWidget ساخته خواهد شد. QWidget کلاس پایهای برای همه اشیا مربوط به رابط کاربری در PyQt است.
در تکه کد پایین فرایند ساخت GUI را نمایش دادهایم. توجه کنید که این کد هم داخل فایل intro.py نوشته شود.
1myWindow = QWidget()
2myWindow.setWindowTitle('PyQt5 Application')
3myWindow.setGeometry(100, 100, 615, 80)
4myWindow.move(60, 15)
5firstMsg = QLabel('<h1>Hello, World! Welcome to Faradars Blog.</h1>', parent = myWindow)
6firstMsg.move(60, 15)
برای توضیح کد بالا، لازم است اشاره کنیم که در خط اول نمونهای از کلاس QWidget ایجاد کردهایم. شیء ساخته شده از کلاس QWidget همه ویژگیهایی را فراهم میکند که برای ساخت پنجره یا فرم اپلیکیشن نیاز داریم. با کمک گرفتن از تابع setWindowTitle() در خط دوم، تیتر مورد نظر خود را به پنجره ساخته شده اضافه کردیم.
سپس از تابع setGeometry() استفاده کردیم تا اندازه دلخواه خود برای پنجره و مکان قرارگیری آن در بر روی صفحه نمایش را تعریف کنیم. دو پارامتر اول تابع نشاندهنده مختصات x و y هستند که محل قرارگیری پنجره بر روی صفحه نمایش را نشان میدهند. پارامترهای سوم و چهارم هم، عرض و ارتفاع پنجره ساخته شده را مشخص میکنند.
هر اپلیکیشن کاربردی گرافیکی به ویجتهای مخصوص به خود نیاز دارد. در اینجا شیء از کلاس QLabel به نام firstMsg ساختهایم. با کمک این شیء بر روی پنجره اپلیکیشن ساخت شده پیام مورد نظر خود را نمایش میدهیم. اشیاء QLabel میتوانند متنهای از جنس HTML را نیز بپذیرند. پس برای اینکه متن خود را به شکل هِدِر h1 در پنجره باز شده نمایش دهیم، از عنصر HTML به صورت «<h1>Hello, World! Welcome to Faradars Blog.</h1>» استفاده میکنیم.
در نهایت هم برای قرار دادن firstMsg در مختصات (60, 15) پنجره اپلیکیشن از تابع move() استفاده کردیم.
توجه: در کتابخانه PyQt5 میتوانیم از هر ویجتی - زیر کلاسهایی از QWidget - به عنوان پنجره سطح بالا یا حتی دکمه یا برچسبی برای پنجره استفاده کنیم. تنها شرط مسئله این است که نباید هیچ والدی به آن ارسال شود. وقتی که از ویجتی به این شکل استفاده میکنیم، PyQt5 به صورت خودکار، نوار تیتری برای آن فراهم کرده و آن را به پنجره معمولی تبدیل میکند.
روابط والد و فرزندی با دو قانون مکمل یکدیگر بهکار برده میشوند.
- ویجتی که والد ندارد پنجره اصلی یا سطح بالا است.
- ویجتی که والد دارد - همیشه والد هر ویجت نیز باید ویجت باشد - درون والدین خودش ذخیره شده و نمایش داده میشود.
همچنین با کمک والدینی که مالک فرزندان خود هستند، این نوع از رابطه، رابطه مالکیت را نیز تعریف میکند. مدل مالکیت در فریمورک PyQt5 تضمین میکند که اگر والدی را حذف کردیم، به عنوان مثال پنجره سطح بالا، همه فرزندان آن والد یا ویجتهای مرتبط با آن پنجره نیز حذف شوند.
باید تضمین کنیم که هر شیء QWidget به استثنای پنجرههای سطح بالا دارای والد باشند. با انجام این کار از نشت حافظه جلوگیری میکنیم. نشت حافظه به مدیریت تخصیص حافظه به صورت غیر صحیح گفته میشود.
![بچه ها به دور درختی که صفحات گرافیکی و رنگی از ان آوریزان شده جمع شدهاند.](https://blog.faradars.org/wp-content/uploads/2024/08/In-a-vibrant-animated-school-environment-a-large-academic-building-is-surrounded-by-students-and-colorful-activities.jpg)
تا اینجای کار پیادهسازی مرحله سوم را هم به پایان رسانیدهایم. در ادامه مطلب، دو مرحله باقی مانده را پیادهسازی میکنیم. بعد از پایان پیادهسازیها میبینیم که نتیجه اجرای پروژهای ساده در PyQt چیست.
کدهای زیر هم ادامه همان پروژه هستند. پس باید در امتداد کدهای قبلی در فایل intro.py نوشته شوند.
1myWindow.show()
2
3# executing the event loop (or main loop) of the application
4sys.exit(myApp.exec_())
در تکه کد بالا میبینیم که تابع show() برای اجرا بر روی شیء myWindow فراخوانی شده است. این تابع در زمان فراخوانی، رویدادی را برای مدیریت رنگ پنجره برنامهریزی میکند. به این معنی که تابع show() رویداد جدیدی را به صف رویدادهای اپلیکیشن اضافه میکند.
توجه : «رویداد رنگ» (Paint Event) درخواستی برای رنگآمیزی ویجتهایی است که با ترکیب یکدیگر رابط کاربری گرافیکی را ایجاد میکنند.
در نهایت هم «حلقه رویدادِ» (Event Loop) اپلیکیشن را با فراخوانی تابع myApp.exec_() مقداردهی میکنیم. در اینجا فراخوانی تابع exec_() در فراخوانی تابع sys.exit() پیچیده شده است. این اتفاق به کاربران اجازه میدهد که به صورت تمیزی از پایتون خارج شوند. علاوه بر آن در زمان به پایان رسیدن کار اپلیکیشن - بسته شدن آن - منابع حافظه اشغال شده نیز آزاد میشوند.
فایل intro.py را با کمک فرمان زیر اجرا میکنیم.
1$ python3 intro.py
خروجی حاصل از اجرای این فایل به صورت تصویر زیر به کاربر نمایش داده میشود.
![تصویر پروژه ایجاد شده. - PyQt چیست](https://blog.faradars.org/wp-content/uploads/2024/08/pyqt-library-in-python-1-2.png)
در خروجی بالا، اپلیکیشن طراحی شده، پنجرهای را بر اساس QWidget نمایش میدهد. در این پنجره پیغام مورد نظرمان نمایش داده شده است. برای این نمایش پیام، از QLabel استفاده کردیم در نتیجه پیام نوشته شده با فرمت دستور داده شده ظاهر شد. با کمک ابزار QLabel موفق شدیم پیام مورد نظر خود را با فرمت HTML نمایش دهیم.
آموزش های تکمیلی پایتون با فرادرس
بعد از اینکه مهارتهای خود را در کار با زبان برنامهنویسی پایتون تا حد مناسبی ارتقا دادیم، برای ادامه افزایش توانایی و پاسخ به این سوال که چه بخشهایی از دانش برنامهنویسی خود را باید تکمیل کنیم، بهترین کار بررسی دورههای حرفهایتر است. برای مثال، استفاده از متدهای رشته در پایتون برای پیادهسازی پروژههای عملی باعث نهادینه شدن دانش مربوط به کار با رشتهها در برنامهنویس میشود. بنابراین، بهترین روش برای تقویت تواناییها و ترکیب تکنولوژیهای مختلف در برنامهنویسی انجام پروژههای هرچه نزدیکتر به سناریوهای دنیای واقعی است.
![مجموعه آموزش پروژه محور برنامه نویسی پایتون (Python)](https://blog.faradars.org/wp-content/uploads/2024/08/Project-based-Python-tutorials.png)
با این هدف، وبسایت آموزشی فرادرس، فیلمهای بسیار خوبی درباره آموزش پروژه محور انواع زبانهای برنامهنویسی تولید و ارائه کرده است. در این بخش از مطلب، چند مورد از این فیلمها را در ارتباط با پروژههای واقعی زبان برنامهنویسی پایتون معرفی کردهایم.
- فیلم آموزش پیش بینی نوسانات بازار سهام با هوش مصنوعی در پایتون با فرادرس
- فیلم آموزش بازی سازی در پایتون با کتابخانه Pygame از فرادرس
- فیلم آموزش طراحی سایت و وب اپلیکیشن با فریمورک Django در فرادرس
- فیلم آموزش مقدماتی ساخت ربات تلگرام با پایتون با فرادرس
- فیلم آموزش پروژه محور پایتون درباره ساخت دستیار صوتی، از طراحی توابع تا اجرای برنامه با فرادرس
در صورت تمایل به دیدن فیلمهای بیشتر با کلیک بر روی تصویر بالا به صفحه اصلی این مجموعه آموزشی هدایت شده و گزینههای متنوع موجود را مشاهده کنید.
جمع بندی
در این مطلب از مجله فرادرس درباره اینکه PyQt چیست و چه امکاناتی دارد، به طور خلاصه، صحبت کردیم. پایتون توانایی بسیار زیادی در طراحی و تولید برنامههای قدرتمند و پیچیده بک اند دارد. اما کتابخانههای گرافیکی آن مانند PyQt به پایتون کمک کردند تا در حوزه اپلکیشنهای دسکتاپ هم به صورت مستقل وارد عمل شود. با کمک این کتابخانه و ابزارهای فراوانی که در دسترس توسعه دهندگان قرار داده است، میتوان برنامههای بسیار جالب و قدرتمندی در حوزههای مختلف طراحی کرد.
در این مطلب ابتدا به سوال PyQt چیست پاسخ داده و سپس چند مورد از ویژگیهای PyQt را بیان کردیم. در ادامه روش نصب و شروع کار با این کتابخانه را با مثالهای کدنویسی شده نشان دادیم و در نهایت هم مثال کوچکی از نمایش پنجره گرافیکی را با پیغام دلخواه پیادهسازی کردیم. مثال آخر به صورت قدمبهقدم، با کدنویسی و توضیحات کامل مربوط به هر مرحله نمایش داده شده است.