پایه ترین کلاسی که برای توسعه برنامه با رابط گرافیکی استفاده خواهید کرد QApplication می باشد. این کلاس در هسته ی هر برنامه PyQt قرار دارد و جریان کنترلی برنامه را همانند تنظیمات اصلی آن مدیریت می کند. در PyQt هر نمونه از QApplication
به عنوان یک برنامه در نظر گرفته می شود. هر برنامه با رابط گرافیکی باید یک شئ از QApplication
داشته باشد. برخی از مسئولیت های برنامه شامل موارد زیر است:
اینها فقط تعدادی از مسئولیت های سطح هسته ای QApplication می باشند. همانطور که می بینید وقتی که می خواهیم یک برنامه ی گرافیکی با PyQt بسازیم، این یک کلاس زیرساختی است.
یکی از مهم ترین مسئولیت های QApplication فراهم کردن حلقه ی رویداد و کل مکانیزم مدیریت رویدادهاست. باهم برویم تا نگاهی نزدیک تر به حلقه های رویداد داشته باشیم.
برنامه های با رابط گرافیکی رویدادمحور هستند یعنی توابع و متدها در پاسخگویی به فعالیت های کاربر اجرا می شوند؛ نظیر کلیک یک دکمه، انتخاب یک آیتم از combobox، وارد کردن یا بروزرسانی یک متن در text edit و یا فشردن یک کلید از صفحه کلید و... . این فعالیت ها به طور کلی رویداد نامیده می شوند.
رویدادها معمولا توسط یک حلقه ی رویداد اداره می شوند(همچنین خوانده می شود حلقه ی اصلی) که یک حلقه ی بینهایت در جایی که تمام رویدادها از کاربر، سیستم پنجره و هر منابع دیگری که پردازش و ارسال می شوند، می باشد. حلقه ی رویداد منتظر وقوع یک رویداد مانده وسپس آن را برای اجرا کردن برخی دستورات ارسال می کند. حلقه ی رویداد تا زمان تخریب برنامه کار می کند (منظور زمانی که دستور بسته شدن برنامه داده می شود و تمام منابع اختصاص یافته به آن آزاد می گردند)
حلقه های رویداد توسط تمام برنامه های با رابط گرافیکی به کار گرفته می شوند. حلقه ی رویداد نمونه ای از یک حلقه ی بی انتهاست که منتظر وقوع یک رویداد می ماند. اگر یک رویداد به وقوع پیوست پس حلقه ابتدا بررسی می کند که آیا رویداد یک رویداد تخریبی است؟ در اینصورت حلقه تخریب و برنامه خارج می گردد. در غیر اینصورت هم رویداد به صف رویدادهای برنامه برای پردازش های بعدی فرستاده می شود و رویداد دوباره آغاز بکار می کند.
در PyQt حلقه ی رویداد برنامه را می توانید توسظ فراخوانی متد ()_exec. در شئ QApplication
اجرا کنید.
نکته: PyQt در ابتدا با هدف پایتون 2 توسعه یافته بود که در حال حاضر کلید واژه ی exec را داراست. در نسخه های قبلی تر یک خط تیره به انتهای این جهت جلوگیری از اشتباهات تسمیه اضافه شده بود.
PyQt5 پایتون 3 را مورد هدف قرارمی دهد که کلیدواژه ی exec
را ندارد. هنوز هم کتابخانه دو متد که حلقه ی رویداد را آغاز می کنند، فراهم می کند.
در کل یعنی می توانید .exec_()
را از کد خود حذف کرده و از .exec()
بجای آن استفاده کنید.
در مورد یک رویداد برای به راه انداختن یک عکس العمل نیاز دارید که آن را با فعالیتی که می خواهید اجرا شود، متصل کنید. می توانید این اتصال را بوسیله ی سیگنال ها و مکانیزم شکاف ها که در درس آتی آموزش فارسی PyQt می خوانید، ایجاد کنید.
منبع: سایت Real Python
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.