برای استفاده ی بهینه از کتابخانه جهت توسعه ی برنامه با رابط گرافیکی، شما نیازمند تسلط بر مفاهیم پایه یا مبانی PyQt هستید. برخی از این مفاهیم به شرح زیر هستند:
این عناصر بدنه ی سازنده ی برنامه ی دارای رابط گرافیکی شما خواهند بود. اغلب این ها به عنوان کلاس های پایتونی می باشند و PyQt5.QtWidgets
ماژولی است که این کلاس ها را فراهم می سازد و با جدیت می توان گفت که بسیار مهم است.
کلاس QWidget
کلاس پایه برای تمام اشیاء رابط کاربری یا همان ویجت ها می باشد که اجزای گرافیکی مستطیل شکل برای قرار دادنشان در پنجره ی برنامه هستند و با استفاده از آن ها رابط کاربری ساده برای برنامه ایجاد می کنیم.
ویجت ها شامل یک سری از متدها و صفات می باشند که امکان شکل دادن برای رفتار و ظاهرشان را به شما می دهد. همچنین می توانند تمثالی از خود را بر روی صفحه نمایش ترسیم کنند.
ویجت ها همچنین کلیک ماوس، فشردن دکمه و دیگر رویدادها از جانب کاربر و سیستم عامل را دریافت می کنند. هر بار که یک ویجت رویدادی را دریافت می کند، سیگنالی را مبنی بر آشکارسازی تغییر وضعیتش منتشر می کند. PyQt5 دارای مجموعه ای از به روزترین ویجت هایی است که در چندین هدف مختلف به کار می آیند.
برخی از متداول ترین و پر استفاده ترین ویجت ها به شرح زیر هستند:
نگاهی نزدیک تر به هر یک از این ویجت ها می اندازیم:
اولی button است که با استفاده از آن می توانید یک دکمه با نمونه سازی از QPushButton
(کلاسی که دکمه فرمان بصورت کلاسیک را فراهم می سازد) ایجاد کنید. دکمه های عادی مثل : ok ،cancel ,apply ,yes, no. در تصویر زیر نحوه ی ظاهر شدن این ها روی سیستم عامل لینوکس نمایش داده شده است:
این دکمه ها شاید پرکاربردترین ویجت در هر رابط کاربری باشند. موقع کلیک کردن روی آن ها م یتوانید کامپیوتر را برای انجام عملیات لازم برنامه ریزی کنید. حتی می توانید عملیاتی را در عکس العمل به کلیک کاربر تعریف کنید.
مورد بعدی labels یا برچسب ها می باشند که با QLabel
می توان ساخت. برچسب ها راهی را برای نمایش اطلاعات در شکل متن یا تصویر ارائه می دهند.
از برچسب هایی مثل این می توان برای تشریح هرچه بهتر هدف و استفاده ی رابط کاربری بهره برد. می توانید ظاهرشان را به چند روش تغییر دهید و همانطور که قبلا ملاحظه کردید حتی می توانند تگ های HTML را بپذیرند. برچسب ها همچنین برای تعیین کلیدهای mnemonic (با یک حرف زیر خط دار در یک عنصر از دیالوگ مثل یک آیتم از منوی کلیک راست مشخص می شوند که کاربر با فشردن کلید Alt و mnemonic key یا کاراکتر زیر خط دار باعث انتخاب آن آیتم می گردد مثلا Alt+a) بکار می روند.
یکی دیگر از ویجت های متداول و پرکاربرد line edit می باشد که یک فیلد تک خطی متنی است و با QLineEdit
ایجاد می شود.
این ویجت ها موقع نیاز به ورودی متنی کاربر و دریافت آن همچنین ویرایش داده های متنی به کار می آیند. در زیر تصویر ظاهری این ویجت ها در سیستم عامل لینوکس نشان داده شده است:
line edit ها عملیات ساده ی ویرایش متنی مثل کپی و جایگذاری، کشیدن و انداختن (drag and drop) را فراهم می سازند. همانطور که ملاحظه می کنید در ردیف اول این اشیاء نوشته ای بدون محتوای قابل ویرایش موسوم به placeholder (برای مشخص کردن نوع نوشته ای که کاربر باید وارد کند)، نشان داده می شود.
Combo box ها ویجت پرکاربرد در وهله ی بعدی می باشند که با استفاده از کلاس QComboBox
ایجاد می شوند و کاربرِ برنامه ی شما را با لیستی از گزینه های مختلف روبرو می کنند، در حالیکه کمترین فضای ممکن از صفحه نمایشتان را اشغال خواهد کرد. در پایین یک نمونه از لیست کشویی در سیستم عامل لینوکس نشان داده شده است:
combo box ها فقط قابل خواندن هستند یعنی کاربر فقط می تواند یک مورد را انتخاب کند نه اینکه موردی را اضافه یا حذف کند. در صورتیکه combo box قابل ویرایش تعریف شده باشد، کاربر حق افزودن موارد جدید به لیست را دارد؛ خواه رشته ای باشد و یا از نوع pixmap (داده هایی که تصاویر را بوسیله ی آرایه ای مستطیل شکل از مقدار رنگ پیکسل، نمایش می دهند).
آخرین ویجت مهم که باید اینجا ذکر شود radio button ها هستند. این ویجت ها هم از کلاس QRadioButton
ایجاد می شوند. هر شئ از این کلاس یک گزینه می باشد که فقط یکی از حالت های تیک زده شده و بدون تیک را می پذیرد. این ویجت ها هنگامی که می خواهید کاربر از چندین گزینه ی ممکن فقط بتواند یک گزینه را انتخاب کند به کار می روند. در شکل زیر تمام گزینه ها به صورت همزمان قابل رویت در صفحه هستند:
در این گروه از radio button ها فقط یک دکمه در زمان مشخص می تواند تیک بخورد یا انتخاب شود. اگر کاربر یکی از گزینه های دیگر را انتخاب کرد یا تیک زد، همزمان گزینه ی تیک زده شده ی قبلی به صورت خودکار به حالت بدون تیک درمی آید.
PyQt5 دارای مجموعه ی بزرگی از ویجت هاست. در زمان تحریر این نوشته بیش از چهل نوع ویجت قابل استفاده برای رابط کاربری برنامه ها وجود دارد. تمام انواعی که خواندیم فقط مثال هایی کوچک از آن ها بود ولی همین موارد نیز توانایی و انعطاف PyQt5 را به خوبی نشان می دهند.
امیدواریم که از این بحث مبانی PyQt استفاده کرده باشید. در قسمت های آتی نحوه ی کنار هم قرار دادن ویجت های مختلف برای ایجاد برنامه ی مدرن با رابط گرافیکی تابع محور را تحت پوشش قرار خواهیم داد.
منبع: سایت Real Python
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.