PyQt6 - QMainWindow
QMainWindow
چنانکه در بخش قبل گفتیم، در Qt هر ویجتی میتواند پنجره باشد. برای مثال، در کد زیر تنها بوسیله QPushButton
یک پنجره با تنها یک دکمه قابل کلیک ایجاد میشود.
این مسئله هر چند جالب به نظر میرسد ولی خیلی کاربردی نیست. خیلی بعید است که یک UI شامل تنها یک دکمه قابل کلیک نیاز داشته باشید! اما چنانکه در بخش بعدی در خواهید یافت، توانایی قرار دادن یک ویجت داخل ویجت دیگر با استفاده از چیدمان (layouts) به معنی آن است که میتوانید UIهای پیچیده را داخل یک Qwidget
خالی بسازید.
در Qt یک ویجت پیش ساخته با تعداد بسیار زیادی از خصوصیتهای پنجره، شامل نوار ابزار، منوها، نوار وضعیت و بسیاری دیگر که از آنها در اپلیکیشن خود استفاده خواهید کرد وجود دارد. در بخشهای بعدی به آموزش این خصوصیتهای پیشرفته خواهیم پرداخت ولی برای الان تنها یک QMainWindow
ساده خالی برای اپلیکیشن خود میسازیم.
چنانکه ملاحظه میکنید الان پنجره اصلی اپلیکیشن را داریم که در ظاهر هیچ تفاوتی با قبل ندارد.
اگر میخواهید یک پنجره دلخواه داشته باشید، بهترین رویکرد آن است که یک زیر کلاس از QMainWindow
ایجاد و سپس تنظیمات پنجره را در بلوک __init__
اعمال کنید. در کد زیر اسم کلاس خود را که از کلاس QMainWindow
به ارث میبرد جهت سادگی MainWindow
گذاشتهایم.
برای این مثال از QPushButton
استفاده کردهایم. در هنگام استفاده از QMainWindow
از .setCentralWidget()
جهت قرار دادن ویجت مورد نظر (در اینجا QPushButton
) در QMainWindow
استفاده میکنیم. به صورت پیشفرض کل پنجره را پوشش میدهد. نحوه اضافه کردن چندین ویجت به پنجره را در بخش نحوه چیدمان آموزش میدهیم.
super().__init__()
را فراخوانی کنید تا Qt تنظیمات شیء را انجام دهد.
در تابع __init__
خود، اول از .setWindowTitle()
جهت تغییر عنوان پنجره اصلی استفاده کردهایم. سپس اولین ویجت خود، یک QPushButton
را به وسط پنجره اضافه کردهایم. این ویجت یکی از ویجتهای اساسی در دسترس در Qt است. در هنگام ایجاد یک دکمه، میتوانید متنی را که دکمه نشان میدهد به آن بدهید.
در نهایت .setCentralWidget()
را روی پنجره فراخوانی کردهایم. این یک تابع مخصوص QMainWindow
است که به شما این امکان را میدهد تا ویجت را در وسط پنجره قرار دهید.