آموزش PyQt – قسمت اول (QWidget)

سلامی دوباره به پای ابری های عزیز، ما تو این مقاله قصد داریم یک دوره ای کامل رو از فریم ورک پای کیوت بیاموزیم پس تا آخر مطلب همراه ما باشید

می تونید از طریق ویدئو های بالا پای کیوت رو در سیستم عامل ایرانی پای ابر بیاموزید؛ اما ما در این مقاله ویژگی های بیشتری رو از پای کیوت در پای ابر براتون بیان می کنیم.

پای کیوت (PyQt) چیست؟

پای کیوت یک فریم ورک است بر پایه کتابخانه های گرافیکی کیوت که توسط RiverBank توسعه داده میشه این فریم ورک برای طراحی برنامه های گرافیکی است (غیر کنسولی)؛ شما با این فریم ورک تو زبان پایتون به راحتی می تونین ویجت ها، پنجره ها و … را طراحی کنید.

کیوت (Qt) چیست؟

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

نوشتن اولین برنامه

شما می تونید در هر ویرایشگر متن یا IDE برنامه هاتونو با پای کیوت بنویسین اما قبل از این کار لازمه پایتون و پای کیوت رو نصب داشته باشین.

البته همه اینها در توزیع پای ابر نصب هستن پس لازم نیست نصبشون کنین؛ اگر از سیستم عامل دیگری غیر از پای ابر استفاده می کنید باید توسط دستور زیر پای کیوت رو نصب کنین:

python -m pip install PyQt5

خوب منتظر بمونید تا پای کیوت براتون نصب بشه.

نسخه پایدار و کامل پای کیوت ۵ هست اما اگه دوست دارین بروز باشید از وارد کردن دستور بالا صرف نظر کنین و با دستور زیر اقدام به نصب پای کیوت ۶ کنین:

python -m pip install PyQt6

پای کیوت ۶ البته در حیطه بالاتر از بعضی امکانات پشتیبانی نمی کنه ولی ممکنه به زودی اون ویژگی ها هم بهش اضافه بشه.

برای شروع یک برنامه گرافیکی با پای کیوت:

from PyQt5.QtWidgets import *
import sys

app = QApplication (sys.argv)
w = QWidget ()
w.show()
app.exec()

خوب این یک برنامه پنجره ساده هست که وقتی بالا میاد اینجوری میشه:

یک پنجره ساده در پای کیوت - پای ابر ۲.۱.۲
یک پنجره ساده در پای کیوت – پای ابر ۲.۱.۲

برسی کدها

خوب کدهایی که در بالا نوشتیم رو برسی می کنیم:

اضافه کردن ماژول ها و کتابخونه ها به برنامه

from PyQt5.QtWidgets import * 
import sys
  • خط اول کتابخونه ویجت ها و پنجره ها از پای کویت ۵ به کدما اضافه میشه (در صورتی که از پای کیوت ۶ استفاده می کنید from PyQt6 بنویسین)
  • خط دوم ماژول سیستمی sys اضافه میشه برای پارامترهای برنامه درآغاز و همچنین خروج از برنامه

شئ آغازین

app = QApplication (sys.argv) 
....
app.exec()

همه برنامه های پای کیوت باید با یک شئ شروع کننده آغاز بشن ما در ویجت ها شئ آغاز کننده برنامه رو داریم به اسم QApplication این شئ میاد برنامه رو شروع می کنه و امکان اجرای اشیا گرافیکی ویجتی رو فراهم می کنه و با متد ()exec برنامه رو وارد حلقه تکرار می کنه تا کنسول بسته بشه.

ما کدهای اجرایی رو بین آغازگر و متد ()exec می نویسیم؛ می تونید از تابع ()_exec هم استفاده کنین البته این تابع در پای کیوت ۶ حذف شده دلیل استفاده شدن از این تابع این بود که exec تو پایتون ۲ یک کلید واژه اصلی بود.

شئ ویجت معمولی

شئ QWidget یک ویجت معمولی هست که می تونه براتون یک پنجره ساده بسازه:

w = QWidget()

خوب این شئ مخفی هست و ما باید با یک متد اونو به نمایش بزاریم پس از متد ()show استفاده می کنیم:

w.show()

اجرای کد

اجرای کد در سیستم عامل پای ابر
اجرای کد در سیستم عامل پای ابر

حالا میریم سراغ اجرای کدی که نوشتیم مثلا این کد پایتونی ما با نام main.py ذخیره میشه! پس باید با دستور زیر ابتدا اونو کامپایل کنیم و بعد اجرا:

cc main.py

حالا با دستور زیر به راحتی می تونیم برنامه رو اجرا کنیم:

فایل اجرایی ما با نام main.pyc کامپایل شده می تونیم اونو در توزیع پای ابر به راحتی استفاده کنیم؛ اگه شما از پای ابر استفاده نمی کنید و در سیستم عامل دیگری هستین با دستور زیر می تونین کد خودتونو اجرا کنید:

python main.py

حالا دوباره وارد کدنویسی میشیم و ادامه بخش:

تغییر عنوان پنجره

w.setWindowTitle ("Hello")

خوب ما با تابع ()setWindowTitle می تونیم عنوان پنجره رو تغییر بدیم.

گرفتن عنوان پنجره

w.windowTitle()

با تابع ()windowTitle می تونین عنوان فعلی پنجره یا ویجت رو بگیرید و اونو در یک متغییر ذخیره کنید (نوع ذخیره سازی بر پایه رشته هست)

تغییر اندازه پنجره

w.resize ( 1920, 1080 )

با تابع ()resize می تونید اندازه پنجره رو تغییر بدید در پارامتر اول عرض و در پارامتر بعدی ارتفاع پنجره رو می تونید تغییر بدین البته به صورت جداگون هم امکانش هست:

w.setWidth (1920)
w.setHeight (1080)

با توابع ()setWidth و ()setHeight به صورت جداگونه میشه عرض و ارتفاع رو تغییر داد.

w.width()
w.height()

با دو تابع ()width و ()height هم می تونید به ترتیب عرض و ارتفاع رو بگیرید (به صورت عددی ذخیره میشه) و اونو در یک متغییر صحیح ذخیره کنین.

نمایش به صورت تمام صفحه

w.showFullScreen()

بر اساس تابع بالا می تونین پنجره رو تمام صفحه کنید.

گذاشتن لوگو بالای پنجره

خوب رسیدیم به بخش خوشمزه مقاله شما می تونین با کد زیر به راحتی روی پنجره خود لوگو تنظیم کنید:

در پای ابر:

w.setWindowIcon (QIcon(files.input ('logo.png')))

بدون پای ابر:

from PyQt5.QtGui import *

...
w.setWindowIcon (QIcon ('logo.png'))
...

در صورتی که بخواهید یک لوگو اضافه کنین باید کتابخونه QtGui رو که مخصوص بخش های گرافیکی غیر ویجت هست رو هم به کدهاتون اضافه کنید و بعد از شئ QIcon جهت تنظیم روی لوگو اقدام کنین.

w.windowIcon ()

بر اساس کد بالا هم می تونین لوگوی فعلی رو بر پایه QIcon بگیرید و تو یک متغییر ذخیره کنین.

امیدوارم از این مقاله لذت برده باشید؛ نظراتتونو حتما ثبت کنین و هر سوالی دارید حتما بپرسید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *