آموزش PyQt5
پای کیوت یا PyQt یک نرم افزار آزاد یا Free software است که به عنوان یک افزونه پایتون استفاده می شود. PyQt از لینوکس، OS و ویندوز مایکروسافت پشتیبانی میکند.
PyQt شامل زیرمجموعه ای از ماژولهای مختلف است که هر کدام وظیفه خاصی را بر عهده دارد.
در آموزش PyQt5 قصد داریم به طور کامل با این نرم افزار آشنا شویم و نحوه کار با بخش های مختلف آن را آموزش دهیم.
آنچه در آموزش PyQt5 خواهید آموخت:
**قسمت اول (معرفی، نصب و راهاندازی PyQt5)
در این بخش ابتدا به تعریف PyQt میپردازیم و در مورد شرکت توسعهدهنده آن صحبت میکنیم. سپس به معرفی انواع ماژولهای تشکیلدهنده PyQt5 و تفاوت نسخه ۴ و ۵ PyQt میپردازیم و امکانات جدیدی که به PyQt5 اضافه شده را ذکر میکنیم. نحوه نصب PyQt5 را بهصورت عملی مشاهده میکنیم و سپس نحوه نصب Qt_Designer را هم توضیح میدهیم. سپس وارد محیط پایتون شده و یک پنجره ساده با استفاده از دستوارت PyQt5 ایجاد میکنیم و نمایش میدهیم.
درصورتیکه در هنگام کامپایل به ارور مربوط به dll مواجه شویم، winpython را معرفی میکنم تا بتوانیم در هنگام کامپایل با این ارور مواجه نشویم.
- PyQt چیست؟
- ماژولهای تشکیلدهنده PyQt5
- تفاوت PyQt4 و PyQt5
- نصب و راهاندازی PyQt5
- نصب و راهاندازی Qt_Designer
- معرفی دستوارت پایه و ساخت یک برنامه ساده در PyQt5
- معرفی و نصب winpython
**قسمت دوم (معرفی QtCore در PyQt و کار با مباحث شی گرایی)
در این بخش ابتدا به معرفی و کاربردهای ماژول QtCore و سپس به معرفی کلاسهای QTime,QDate,Qt,QDateTime که در داخل ماژول QtCore قرار دارد، میپردازیم. با حل ۳ مثال در مورد کلاسهای ذکرشده مبحث مربوطه را خاتمه داده و مباحثشی گرایی در داخل PyQt5 را شروع میکنیم. هدف از نوشتن برنامه با رعایت اصولشی گرایی را هم ذکر میکنیم.
به معرفی دستور super().__init__() میپردازیم. در آخر با حل یک مثال برای تنظیم کردن آیکون به برنامه، این بخش را تمام میکنیم.
- معرفی ماژول و کلاسهای QtCore در PyQt5
- کار با کلاسهای QDate,Qtime
- طراحی یک برنامه برای نمایش تاریخ و ساعت
- حل مثال تعداد روزها در ماه و سال
- کار با مباحثشی گرایی در PyQt5
- معرفی دستور __init__()
- تنظیم کردن آیکون بروی برنامه در PyQt5
**قسمت سوم (آشنایی با مباحث اولیه، MenuBar،ToolBar)
در این بخش سعی شده تا با حل مثالهای متعدد در داخل پایتون بتوانیم بیشتر ویجت ها را معرفی کنیم و نحوه کار با آنها را یاد بگیریم. سپس به معرفی menubar، statusbar، submenu، checkmenu، contextmenu و toolbar خواهیم پرداخت. در آخر با حل یک مثال کلی همه این مباحث را در کنار هم قرار خواهیم داد.
- نحوه نمایش tooltip
- آشنایی با مباحث اولیه سیگنال و اسلات
- نحوه بستن پنجره فرم با pushButton
- نحوه کار با message Box
- نحوه تنظیم پنجره فرم در وسط صفحه
- نحوه ساخت statusbar
- نحوه ساخت menubar
- نحوه ساخت submenu
- نحوه ساخت checkmenu
- نحوه ساخت contextmenu
- نحوه کار با toolbar
- حل یک مثال کلی
**قسمت چهارم (آشنایی با Layout Management)
مدیریت طرح در حقیقت یک روش برای قرار دادن ویجت بروی فرم میباشد که دارای چندین روش و متد میباشد. ما با استفاده از دو روش میتوانیم ویجت ها را بر روی فرم قرار دهیم:
۱-موقعیت دهی قطعی
۲-استفاده از کلاسهای layout
ما در این بخش با انواع مدیریت طرح آشنا خواهیم شد. معایب و مزایای هرکدام را ذکر میکنیم و با حل مثال بهصورت عملی این مطالب را یاد میگیریم.
- موقعیت دهی قطعی Absolute
- معرفی Box Layout
- معرفی Vertical Box Layout
- معرفی Horizontal Box Layout
- نحوه با Layout های توردتو
- معرفی Grid Layout
- ساخت یک ماشینحساب با Grid Layout
**قسمت پنجم (آشنایی با Event & Signal & Slot)
برنامههای GUI رویداد محور هستند. رویدادها بهصورت کلی توسط کاربر ساخته میشود.
اما میتوانند توسط اتصالات اینترنتی، مدیریت پنجره یا یک تایمر هم ایجاد شوند.
در مدل رویداد، سه عنصر اصلی مشارکت دارد:
۱-Event source
۲-Event object
۳-Event target
PyQt5 برای کار با رویداد یک مکانیسمی تحت عنوان Signal and slot دارا میباشد.
که برای ارتباط بین اشیاء مختلف فرم میتوان از این مکانیسم استفاده کرد.
- معرفی Event
- معرفی Signal and Slot
- طراحی یک برنامه برای کنترل LCD Number
- آشنایی با تابع keyPressEvent برای کار با کیبورد
- حل یک مثال برای کار با کیبورد
- آشنایی با Event Object
- آشنایی با Mouse Tracking
- طراحی یک برنامه برای نمایش مختصات مووس
- آشنایی با مفهوم Event Sender و حل یک مثال
- معرفی Emit Signal
- ساخت سیگنالهای سفارشی
- طراحی یک برنامه برای ساخت سیگنال سفارشی
**قسمت ششم (کار با Dialog در PyQt5)
پنجرههای دیالوگ و دیالوگ یک قسمت ضروری و حتمی در برنامه GUI میباشد. در مباحت کامپیوتری یک دیالوگ در حقیقت یک پنجره برای صحبت کردن با برنامه اصلی میباشد.
ما انواع مختلفی دیالوگ داریم:
۱-Input Dialog
۲-Font Dialog
۳-File Dialog
۴-Color Dialog
و …
که هرکدام برای موارد خاص مورداستفاده قرار میگیرد. ما در این بخش به بررسی هرکدام از آنها میپردازیم:
- معرفی و ساخت Input Dialog
- معرفی و ساخت Color Dialog
- معرفی و ساخت Font Dialog
- معرفی و ساخت File Dialog
**قسمت هفتم (کار با Widgets)
ویجت ها بهعنوان اساس و پایه بلاکهای ساختاری یک برنامه مورداستفاده قرار میگیرد.
PyQt5 دارای تعداد زیادی ویجت هست ازجمله:
- Button
- Check Box
- Slider
- List Box
- و…
در این بخش ما در مورد ساخت ویجت هایی که کاربرد زیادی دارند بحث خواهیم کرد و با حل مثالهای گوناگون این مطالب را یاد خواهیم گرفت.
- کار با QCheckBox
- کار با Toggle button
- کار با QSlider
- ساخت یک برنامه برای ولوم صدا با Slider
- کار با تایمر
- کار با Progress Bar
- معرفی ویجت تقویم
- ساخت برنامه تقویم با QCalendar
- نحوه کار با تصاویر
- کار با QPixmap
- کار با QLineEdit
- کار با QSplitter
- کار با QComboBox
**قسمت هشتم (Painting in PyQt5)
قابلیت Paint در PyQt5 برای رندر گرافیکی، تصاویر و طرح کلی فونت یک متن بکار میرود. مهمترین دلیل استفاده از این قابلیت در PyQt5 برای ساخت یا تغییر یک ویجت با استفاده از Painting میباشد. برای ساخت یک ویجت از ابتدا یا تغییر آن ضروری است تا تسلط کامل بر مباحت Painting در PyQt5 داشته باشید.
- معرفی QPainter
- آشنایی با Drawing text
- نحوه طراحی نقطه Point
- ساخت برنامه Point Random
- کار با رنگ و فریمها در PyQt5
- آشنایی با QPen
- ساخت برنامه Pen Styles
- آشنایی با QBrush
- ساخت برنامه Brush Styles
- نحوه رسم مستطیل
- نحوه رسم بیضی
**قسمت نهم (ساخت ویجت سفارشی Nero)
در این بخش به ساخت یک ویجت سفارشی به اسم Burning Widget میپردازیم که با یک Slider کنترل میشود. شاید نمونه آن را در داخل Nero مشاهده کرده باشید.
بعد از این بخش و یادگیری آن بهراحتی میتوان ویجت های سفارشی خود را ساخت و از آن استفاده کرد.
- ساخت ویجت سفارشی Burning Widget
**قسمت دهم (آشنایی با محیط Qt_Designer)
در این پارت با معرفی محیط Qt_Designer شروع میکنیم. بخشهای مختلف Qt_Designer را معرفی میکنیم و سپس شروع به طراحی یک مثال ساده میکنیم.
تفاوت کار با سیگنال و اسلات را در داخل Qt_Designer با حل یک مثال یاد میگیریم. به معرفی انواع Layout ها از قبیل Vertical,Horizontal,Grid میپردازیم. سپس نحوه اولویت دادن به ویجت های موجود در Qt_Designer را یاد میگیریم. در آخر Edit Buddies را معرفی میکنم و هدف از ایجاد آن و نحوه کار با آن را یاد میگیریم.
- معرفی محیط Qt_Designer
- طراحی یک برنامه ساده در Qt_Designer
- کار با Menu Bar در Qt_Designer
- آشنایی با Signal & Slot در Qt_Designer
- آشنایی با Widgets در Qt_Designer
- آشنایی با Layouts در Qt_Designer
- کار با Tab Order در Qt_Designer
- کار با Edit Buddies
- کار با Pyuic5
- نحوه تبدیل فایل ui به فایل py
- طراحی slot سفارشی
**قسمت یازدهم (فراخوانیها و Multi threading)
در این بخش ابتدا به مباحث فراخوانی window و Dialog window از داخل MainWindow میپردازیم. سپس با table widget کار خواهیم کرد.
به بررسی هدف جداکردن کد پایتون از کد تولیدشده میپردازیم و هدف از این کار را ذکر میکنیم و در آخر مباحث مربوط به نخها در داخل PyQt5 پوشش میدهیم.
- فراخوانی DialogWindow از داخل MainWindow
- نحوه ارتباط DialogWindow با MainWindow
- آشنایی با tableWidget و ست کردن item
- جدا کردن کد پایتون و کد تولید شده
- آشنایی با تابع processEvent
- آشنایی با Multi Threading و QThread
**قسمت دوازدهم (آشنایی با Drag And Drop و کار با OpenGl)
در این بخش ابتدا با مباحث مربوط Drag And Drop آشنا خواهیم شد. سپس به بررسی کتابخانه OpenGl خواهیم پرداخت و یک برنامه با OpenGl ساخته و آن را در داخل فرم به نمایش در خواهیم آورد.
- نحوه کار با Drag And Drop
- ویرایش مجدد تابع مربوط Drag And Drop
- فعالسازی Drop برای Push Button
- ویرایش مجدد تابع مربوط Drop Combo Box
- Drag And Drop in List Widget
- معرفی و نصب OpenGl بروی پایتون
- آشنایی با مفاهیم اولیه OpenGl
- ساخت یک برنامه House
- آشنایی QOpenlWidget
- ارتباط OpenGl و PyQt5
**قسمت سیزدهم (کار با دیتابیس)
در این پارت به مباحت کار با دیتابیس میپردازیم. ابتدا کار با دیتابیس sqlite را یاد میگیریم. نحوه ایجاد دیتابیس و کانکت شدن به دیتابیس و دستوارت update و delete و input و fetch را یاد میگیریم. به معرفی ماژول و کلاسهای QtSql میپردازیم که این ماژول در داخل PyQt5 قرار گرفته شده و برای کار با دیتایس از کلاسهای این ماژول استفاده میشود.
دستورات این ماژول کاملاً با دستوارت sqlite فرق دارد، که در داخل دوره هم به آن اشاره میکنیم و تفاوتهای هردو را نشان میدهیم.
- معرفی SQLite
- ساخت connection و معرفی cursor در SQLite
- Insert کردن در SQLite
- واکشی داده در SQLite
- Update کردن SQLite
- Delete کردن در SQLite
- DataInput در SQLite
- معرفی QtSQL و لایههای زیرساخت
- معرفی Model و آشنایی با QSqlTablModel
- ساخت و connect شدن به بانک اطلاعات در QtSQL
- واکشی اطلاعات و نمایش در QtSQL
- اضافه کردن و حذف کردن رکورد در QtSQL
**قسمت چهاردهم (معرفی و کار با CSS و معرفی pyinstaller)
در این بخش به یادگیری و نحوه کار با دستوارت CSS جهت زیبا ساختن ظاهر گرافیکی برنامه میپردازیم. نحوه کار با رنگها و تنظیم عکس بروی پس زمینه را یاد خواهیم گرفت.
سپس به معرفی pyrcc5 خواهیم پرداخت. در آخر دوره هم به معرفی pyinstaller برای تبدیل فایلهای پایتون به فایل exe خواهیم پرداخت.
- نحوه ست کردن عکس بروی پس زمینه
- ساخت برنامه لاگین با PyQt5
- معرفی CSS Style
- کار با دستورات CSS
- معرفی Gradient
- معرفی pyrcc5 برای تبدیل فایل qrc به فایل پایتون
- معرفی ماژول pyinstaller
- آشنایی با option های pyinstaller
- تبدیل فایل پایتون به فایل exe
- معرفی vc_redist
شما می توانید هرگونه سوال یا پیشنهاد خود را از طریق دیدگاه های همین پست مطرح بفرمایید.
نوشته آموزش PyQt5 اولین بار در دانشجویار پدیدار شد.