هیچ دوره ای در سبد خرید شما وجود ندارد
PyQt یا پای کیوت، برنامه ی پیشنهادی برای رابط گرافیکی کاربران در پایتون است. PyQt یک افزونه پایتون می باشد که در مطلب آموزش PyQt به بررسی آن خواهیم پرداخت.
آموزش PyQt
پای کیوت یا PyQt یک نرم افزار آزاد یا Free software است که به عنوان یک افزونه پایتون استفاده می شود. PyQt از لینوکس، OS و ویندوز مایکروسافت پشتیبانی میکند.
PyQt شامل زیرمجموعه ای از ماژولهای مختلف است که هر کدام وظیفه خاصی را بر عهده دارد.

در آموزش PyQt قصد داریم به طور کامل با این نرم افزار آشنا شویم و نحوه کار با بخش های مختلف آن را آموزش دهیم.
آنچه در آموزش PyQt خواهید آموخت:
**قسمت اول (معرفی، نصب و راهاندازی PyQt)
در این بخش ابتدا آموزش PyQt، به تعریف PyQt میپردازیم و در مورد شرکت توسعهدهنده آن صحبت میکنیم. سپس به معرفی انواع ماژولهای تشکیلدهنده PyQt و تفاوت نسخه 4 و 5 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 قرار دارد، میپردازیم. با حل 3 مثال در مورد کلاسهای ذکرشده مبحث مربوطه را خاتمه داده و مباحثشی گرایی در داخل PyQt5 را شروع میکنیم. هدف از نوشتن برنامه با رعایت اصولشی گرایی را هم ذکر میکنیم.
به معرفی دستور super().__init__() میپردازیم. در آخر با حل یک مثال برای تنظیم کردن آیکون به برنامه، این بخش را تمام میکنیم.
- معرفی ماژول و کلاسهای QtCore در PyQt5
- کار با کلاسهای QDate,Qtime
- طراحی یک برنامه برای نمایش تاریخ و ساعت
- حل مثال تعداد روزها در ماه و سال
- کار با مباحثشی گرایی در PyQt5
- معرفی دستور __init__()
- تنظیم کردن آیکون بروی برنامه در PyQt5
**قسمت سوم (آشنایی با مباحث اولیه، MenuBar،ToolBar)
در بخش سوم آموزش PyQt، سعی شده تا با حل مثالهای متعدد در داخل پایتون بتوانیم بیشتر ویجت ها را معرفی کنیم و نحوه کار با آنها را یاد بگیریم. سپس به معرفی menubar، statusbar، submenu، checkmenu، contextmenu و toolbar خواهیم پرداخت. در آخر با حل یک مثال کلی همه این مباحث را در کنار هم قرار خواهیم داد.
- نحوه نمایش tooltip
- آشنایی با مباحث اولیه سیگنال و اسلات
- نحوه بستن پنجره فرم با pushButton
- نحوه کار با message Box
- نحوه تنظیم پنجره فرم در وسط صفحه
- نحوه ساخت statusbar
- نحوه ساخت menubar
- نحوه ساخت submenu
- نحوه ساخت checkmenu
- نحوه ساخت contextmenu
- نحوه کار با toolbar
- حل یک مثال کلی
**قسمت چهارم (آشنایی با Layout Management)
مدیریت طرح در حقیقت یک روش برای قرار دادن ویجت بروی فرم میباشد که دارای چندین روش و متد میباشد. ما با استفاده از دو روش میتوانیم ویجت ها را بر روی فرم قرار دهیم:
1-موقعیت دهی قطعی
2-استفاده از کلاسهای layout
ما در این بخش با انواع مدیریت طرح آشنا خواهیم شد. معایب و مزایای هرکدام را ذکر میکنیم و با حل مثال بهصورت عملی این مطالب را یاد میگیریم.
- موقعیت دهی قطعی Absolute
- معرفی Box Layout
- معرفی Vertical Box Layout
- معرفی Horizontal Box Layout
- نحوه با Layout های توردتو
- معرفی Grid Layout
- ساخت یک ماشینحساب با Grid Layout
**قسمت پنجم (آشنایی با Event & Signal & Slot)
برنامههای GUI رویداد محور هستند. رویدادها بهصورت کلی توسط کاربر ساخته میشود.
اما میتوانند توسط اتصالات اینترنتی، مدیریت پنجره یا یک تایمر هم ایجاد شوند.
در مدل رویداد، سه عنصر اصلی مشارکت دارد:
1-Event source
2-Event object
3-Event target
PyQt5 برای کار با رویداد یک مکانیسمی تحت عنوان Signal and slot دارا میباشد.
که برای ارتباط بین اشیاء مختلف فرم میتوان از این مکانیسم استفاده کرد.
- معرفی Event
- معرفی Signal and Slot
- طراحی یک برنامه برای کنترل LCD Number
- آشنایی با تابع keyPressEvent برای کار با کیبورد
- حل یک مثال برای کار با کیبورد
- آشنایی با Event Object
- آشنایی با Mouse Tracking
- طراحی یک برنامه برای نمایش مختصات مووس
- آشنایی با مفهوم Event Sender و حل یک مثال
- معرفی Emit Signal
- ساخت سیگنالهای سفارشی
- طراحی یک برنامه برای ساخت سیگنال سفارشی
**قسمت ششم (کار با Dialog در PyQt5)
پنجرههای دیالوگ و دیالوگ یک قسمت ضروری و حتمی در برنامه GUI میباشد. در مباحت کامپیوتری یک دیالوگ در حقیقت یک پنجره برای صحبت کردن با برنامه اصلی میباشد.
ما انواع مختلفی دیالوگ داریم:
1-Input Dialog
2-Font Dialog
3-File Dialog
4-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)
در قسمت نهایی آموزش PyQt، این بخش به یادگیری و نحوه کار با دستوارت CSS جهت زیبا ساختن ظاهر گرافیکی برنامه میپردازیم. نحوه کار با رنگها و تنظیم عکس بروی پس زمینه را یاد خواهیم گرفت.
سپس به معرفی pyrcc5 خواهیم پرداخت. در آخر دوره هم به معرفی pyinstaller برای تبدیل فایلهای پایتون به فایل exe خواهیم پرداخت.
- نحوه ست کردن عکس بروی پس زمینه
- ساخت برنامه لاگین با PyQt5
- معرفی CSS Style
- کار با دستورات CSS
- معرفی Gradient
- معرفی pyrcc5 برای تبدیل فایل qrc به فایل پایتون
- معرفی ماژول pyinstaller
- آشنایی با option های pyinstaller
- تبدیل فایل پایتون به فایل exe
- معرفی vc_redist
شما می توانید هرگونه سوال یا پیشنهاد خود را از طریق دیدگاه های همین پست مطرح بفرمایید.
hirad1986 دانشجوی دوره
جدای از کیفیت به شدت بد صدا، بخش مهم Qthread رو بدون هیچ توضیحی، صرفا با نشون دادن یک مثال از قبل نوشته شده رد شدن!
777
کیفیت صدا بشدددددددددددددددددت بده بشدددددددددددددددددت
mohammadmahdi.d
صدا بسیار ازاردهنده است :(
alishirazi
مدرس مسلط هستن اما کیفیت صدا خیلی بد و گوش آزار هستش
مجتبی
سلام.خسته نباشید.
خاستم بدونم با pyqt میشه خروجی اندروید گرفت؟
ممنون میشم جواب بدین
Naji
سلام مهندس خسته نباشی من یه مشکلی دارم من ماژول های pyqt5 vs pyqt5-tools رو از طریق محیط داس دانلود و نسب کردم یعنی pip هاشو الان اون مسیری که شما میگین رو میرم هیچی اونجا نیست ولی imoprt میکنم هست کار میکنه ولی اون نرم افزار qtdisainer اونجا نیست
salmani.h62
با سلام و خسته نباشید.
لطفا ایمیل خود چک نمایید سوالی در خصوص درس شماره 11 دارم و ممنون میشم اگر پاسخ دهید.
سوال در این خصوص میباشد که اگر پنجره دوم غیر از dilog with button باشد برنامه دچار مشکل میگردد اگر از window.exec_() استفاده کنیم.
زهرا نوری
واقعا این دوره ، از بهترین دوره های موجود برای این فریمورک هستش خسته نباشین میگم به مدرس باقری و سایت دانشجویار
آرین
بنده این دوره رو تهیه و استفاده کردم. از معدود آموزش های زبان فارسی در مورد این فریم ورک هست. نسبت به هزینه ای که پرداخت می کنیم واقعا می ارزه. تنها ایرادش کیفیت پایین صدا بود به نظرم.
sa
سلام. آیا به جای pyqt می توان از خود برنامه QT5 استفاده کرد.
mohammad23
من این دوره تهیه کرده بودم ، مدرس خیلی خوب تدریس میدن و دوره جامعی هستش
ممنون از اقای باقری
gidion
خیلی خوبه نسبت به بقیه مدرس ها که یه کتابخونه یا فرمورک میخوان درس بدن جون ادمو بالا میارن خیلی خوب درس میدن
farshid
کیفیت صدا پائینه،قطع و وصل میشه
سعید
سلام . برای تست pyqt5 رو با روش شما جلو رفتم اما designer نصب نمیشه ! داخل پوشه pyqt5-tools آیکون های designer نیست .
آرین
تو ورژن جدید کمی فرق کرده. باید وارد پوشه Qt و بعد پوشه bin بشید.
ایمان
سلام موقع اجرای برنامه دیزاینر ارور بهم میده !!
this application failed to start because no Qt platform plugin could be initialized. reinstalling the application may fix this problem
AMIN
سلام
کیفیت صدا خیلی بده هستش
شفیعی
سلام این اموزش مناسب برای نوشتن اپلیکیشن اندروید با زبان پایتون مناسبه ؟ لطفا جواب بدید
A
سلام . با pyqt میشه برای اندروید هم برنامه ساخت؟
امیرعلی طنابیان
از فریمورک kivy می تونید استفاده کنید برای این کار
khosravi
با سلام و خسته نباشید
اگر برای شما مقدور می باشد یک یا دو قسمت از اواسط دوره برای دمو بزارید تا با نحوه تدریس و اموزش بیشتر اشنا بشیم چون دموی قسمت اول برای من کافی نبود که بخوام این دوره رو تهیه کنم ممنون میشم اگر جواب پیام رو بدهید متشکرم
پشتیبان توفیق پور
سلام وقت بخیر
دموها جهت برسی سرفصل ها و آشنایی با نحوه تدریس مدرس تهیه میشه
درصورت نیاز برای بعضی از آموزش ها یک یا چند قسمت جهت ارزیابی به صورت رایگان در نظر گرفته شده
yoosefrostamian
به جرات میتونم بگم بهترین منبع آموزشی pyqt5 که به زبان فارسی ایجاد شده هست . ممنون از سایت دانشجویار و آقای باقری
farzad
سلام
ایا ابزاری مشابه DataGridwview در pyqt داریم؟ و در این مجموعه اموزش داده شده؟
آرمین رحمتی
ایا میشه با pyqt
هرگونه اسکریپت پایتونی را به گرافیکی تبدیل کرد؟؟
خیلی مهمه جواب لطفا…
فرشاد باقری مدرس دوره
با سلام و وقت بخیر
اگه در مورد اسکرپیتون توضیح بدین بیشتر می تونم راهنمایی کنم
مونده به خروجی اسکرپیتتون ولی اکثرا واسه هرنوع اسکریپتی می تونید استفاده کنید و واسه هر برنامه اگه نیاز به gui دارین از این کتابخانه استفاده کنید .
alirez4
سلام و وقت بخیر
آیا آموزش به صورت پروژه محور است و در نهایت به یک خروجی مشخض منتج می شود؟
فرشاد باقری مدرس دوره
با سلام و وقت بخیر
دوره کاملا بصورت عملی می باشد و با حل مثال های مختلف به گونه ای که ابتدا مسءله رو مطرح می کنم بعد شروع به کد زنی و طراحی آن می کنم
و سرفصل ها کامل هستش و می تونید بعد از یادگیری این دوره براحتی با این کتابخانه کار کنید