در اولین گام برای ساخت یک اپلیکیشن گرافیکی با PyQt6، باید بدنهی اصلی برنامه را بسازیم. این کار شامل چند مرحلهی مقدماتی و سه بخش اصلی خواهد بود: نصب کتابخانه، ایجاد یک پنجرهی اصلی (Window) و نگهداری برنامه در یک حلقهی اجرایی.
نصب PyQt6
پیش از شروع کار باید اطمینان حاصل کنید که کتابخانه PyQt6 روی سیستم شما نصب شده است. برای نصب آن، از دستور زیر در محیط ترمینال یا CMD استفاده کنید:
pip install PyQt6
در صورتی که از نسخههای خاصی از پایتون یا محیطهای مجازی (virtualenv یا venv) استفاده میکنید، مطمئن شوید که دستور نصب را در همان محیط فعال اجرا میکنید. پس از نصب موفق، میتوانید با اجرای دستور زیر از نصب صحیح اطمینان حاصل کنید:
python -m PyQt6.QtCore
اگر خطایی مشاهده نکردید، یعنی PyQt6 با موفقیت نصب شده و آماده استفاده است.
اضافه کردن ماژولهای PyQt6
برای شروع کار، باید ماژولهای مورد نیاز را از PyQt6 وارد (Import) کنیم. برای سادهترین مثال، ما فقط به کلاسهای QApplication و QWidget نیاز داریم.
from PyQt6.QtWidgets import QApplication, QWidget
توجه داشته باشید که میتوانید تنها کلاسهایی که مورد نیاز هستند را فراخوانی کنید، اما در پروژههای بزرگتر معمولاً چندین کلاس از بخشهای مختلف PyQt6 استفاده میشود.
ساخت QApplication و QWidget
در PyQt6 برای اجرای هر برنامهی گرافیکی باید ابتدا یک نمونه از کلاس QApplication ایجاد کنید. سپس یک شیء از QWidget (که پنجرهی اصلی برنامه است) ساخته و نمایش داده میشود.
import sys
from PyQt6.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.show()
app.exec()
همانطور که مشاهده میکنید، متد show() برای نمایش پنجره و متد exec() برای اجرای حلقهی اصلی برنامه استفاده میشود. این حلقه تا زمانی که کاربر پنجره را ببندد، فعال خواهد ماند.
# Function Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.show()
app.exec()
# OOP Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget
class App(QWidget):
def __init__(self):
super().__init__()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = App()
window.show()
app.exec()
نمونه خروجی:
تعیین عنوان پنجره
میتوانید با استفاده از متد setWindowTitle() برای پنجره عنوان تعیین کنید. اگر عنوان تعیین نکنید، پنجره بدون نام خاصی باز میشود.
# Function Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("icc-aria gui app")
window.show()
app.exec()
# OOP Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget
class App(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("icc-aria gui app")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = App()
window.show()
app.exec()
نمونه خروجی:
تغییر اندازهی پنجره
برای تعیین اندازهی پیشفرض، حداقل یا حداکثر اندازهی پنجره میتوانید از متدهای resize()، setMinimumSize() و setMaximumSize() استفاده کنید.
# تعیین اندازه پیشفرض
window.resize(350, 200)
# تعیین حداقل اندازه
window.setMinimumSize(400, 300)
# تعیین حداکثر اندازه
window.setMaximumSize(640, 450)
در صورتی که بخواهید کاربر نتواند اندازهی پنجره را تغییر دهد، میتوانید از متد setFixedSize() استفاده کنید تا عرض و ارتفاع پنجره ثابت بماند.
# ثابت کردن اندازه پنجره
window.setFixedSize(400, 300)
همانطور که مشاهده کردید، در PyQt6 تمام عملیاتهای مربوط به تنظیم پنجره از طریق متدهای مختلف کلاس QWidget انجام میشود که کنترل کامل بر ظاهر و رفتار رابط کاربری را به شما میدهد.