اغلب اوقات برنامه ی با رابط گرافیکی شما به سبک پنجره ای (همان که در مقدمه ی درس دیالوگ ها به آن اشاره گردید) یعنی دارای نوار منو، نوارهای ابزار، نوار وضعیت و یک ویجت مرکزی به عنوان عنصر اصلی رابط گرافیکی خواهد بود. همچنین متداول است که برنامه های شما تعدادی دیالوگ برای عملیات ثانویه که مرتبط با ورودی های کاربر است، باشد.
برای توسعه ی برنامه پنجره محور از کلاس QMainWindow
استفاده خواهید کرد. نیاز به وراثت گیری از QMainWindow
برای ایجاد کلاس رابط کاربری دارید. هر نمونه از کلاسی که از کلاس QMainWindow
ایجاد می گردد به عنوان پنجره ی اصلی در نظر گرفته می شود. QMainWindow
یک فریم ورک (چارچوب کاری) برای ساختن رابط کاربری برنامه فراهم می کند. این کلاس چیدمان داخلی و پیشفرض خود را داراست که می توانید از آن در راستای قرار دادن موارد زیر استفاده نمایید:
بدون ایجاد کردن ویجت مرکزی در اولین وهله نمی توانید پنجره ی اصلی را ایجاد کنید. باید ویجت مرکزی را داشته باشید حتی اگر فقط یک placeholder باشد. وقتی اینچنین است می توانید از یک شئ QWidget
به عنوان ویجت مرکزی استفاده نمایید. ویجت مرکزی پنجره ی اصلی را با متد ()setCentralWidget. تنظیم کنید. چیدمان و قالب پنجره ی اصلی اجازه وجود فقط یک ویجت مرکزی را می دهد اما می تواند یک ویجت مفرد یا مرکب باشد.
کد زیر نحوه یاستفاده از QMainWindow
برای ایجاد برنامه به سبک پنجره محور را نشان می دهد:
# Filename: main_window.py """Main Window-Style application.""" import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QLabel from PyQt5.QtWidgets import QMainWindow from PyQt5.QtWidgets import QStatusBar from PyQt5.QtWidgets import QToolBar class Window(QMainWindow): """Main Window.""" def __init__(self, parent=None): """Initializer.""" super().__init__(parent) self.setWindowTitle('QMainWindow') self.setCentralWidget(QLabel("I'm the Central Widget")) self._createMenu() self._createToolBar() self._createStatusBar() def _createMenu(self): self.menu = self.menuBar().addMenu("&Menu") self.menu.addAction('&Exit', self.close) def _createToolBar(self): tools = QToolBar() self.addToolBar(tools) tools.addAction('Exit', self.close) def _createStatusBar(self): status = QStatusBar() status.showMessage("I'm the Status Bar") self.setStatusBar(status) if __name__ == '__main__': app = QApplication(sys.argv) win = Window() win.show() sys.exit(app.exec_())
اینجا نحوه ی کار این کد را بیان می کنیم:
QLabel
را به عنوان ویجت مرکزی تنظیم می کند.
نکته: وقتی که اجزای مختلف رابط کاربری را در متدهای مربوط به خودشان پیاده سازی می کنید، در واقع خوانایی و قابلیت نگهداری کد خودتان را ارتقا می بخشید. این کار ضروری نیست. بنابراین مختارید که کد برنامه ی خود را در بهترین حالتی که دوست دارید، سازماندهی کنید.
وقتی کد بالا را اجرا کنید پنجره ای مانند زیر را خواهید دید:
می بینید که برنامه ی پنجره محور شما دارای اجزای زیر می باشد:
QLabel
)تا اینجا بخشی از مهم ترین اجزای گرافیکی از مجموعه ویجت های PyQt5 را تحت پوشش قرار دادید. در دروس آتی مفاهیم دیگر مرتبط با رابط گرافیکی PyQt5 را یاد خواهید گرفت.
منبع: سایت Real Python
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.