منوهای نصب در پنل مدیریت

  • ورود
  • سبد خرید شما خالی است.

Event ها و Properties در Kivy

Event ها چیستند و کاربرد آنها چیست ؟

اگر چیزی درباره فریم ورک کیوی (kivy) نمی‌دانید شاید کمی برایتان درک ساختار Event ها و properties سخت باشد پس بهتر است مقاله های کتابخانه کیوی (kivy) ، فریم ورک kivy و مهندسی فریم ورک کیوی را مطالعه کنید.

Events یا کلید ها

کلید ها یا حالا رویداد(kivy) های ورودی در کیوی (kivy) بسیار حائز اهمیت است .

اما شاید شما که در این زمینه بسیار با تجربه نیستید باورش برایتان سخت باشد .

اما کمی که بیشتر با کیوی آشنا شدید متوجه می شوید که این کلید های ورودی بسیار کار آمد هستند.

و بسیاری از کار ها در برنامه های شما با این کلید ها انجام می‌شود اعم از ورودی ها .

در تصویر زیر کاربرد Event ها را به صورت شکل تعریف کردیم.

اگر بخواهم تصویر بالا را تفصیر کنم باید بگویم که :

نخست برنامه ورودی ها را از طریق Event ها حالا به هر طریقی که هست می گیرد .

در مرحله دوم ثبت می کند ورودی را با روش های مختلف مانند کلیک و لمس (touch) .

سپس ورودی ها را پردازش کرده و بسته به کاربرد ورودی آن را به کار می گیرد.

در آخر آنها را به صورت GUI یا گرافیکی نمایش می‌دهد.

نکته! : معنی کلمه Event رویداد می‌باشد ولی اینکه من چرا این کلمه را “کلید” معنی می کنم این است که از این دستور برای ساخت کلید های گرافیکی در برنامه های GUI استفاده می‌شود.

آشنایی با Event Dispatcher یا ثبت کننده کلید ها

یکی از مهمترین کلاس های پایه ، این چهارچوب کلاسِ Event Dispatcher می‌باشد.

این کلاس به شما این امکان را می‌دهد که انواع کلید ها یا Event هارا ثبت کنید.

و آنها را به دیگر ثبت کننده های دیگر ارسال کنید .

به طور مثال ویجت های کلاس های clock و motion از جمله توزیع کننده های کلید ها (Events) هستند.

و مانند تصویر بالا اشیاء Event Dispatcher به داخل حلقه Main یا اصلی می‌روند برای تولید و هندل (Handle) شدن.

Main loop یا حلقه اصلی

همانطور که در تصویر بالا بیان شد یک حلقه وجود دارد که تنها زمانی که از برنامه خارج می‌شویم از برنامه خارج می‌شود.

و در تمام طول برنامه اجرا می‌شود.

در حلقه ، در هر تکرار از ورودی کاربر ، سنسور های سخت افزاری یا چند (sources) منبع دیگر ایجاد می‌شود و سپس فریم ها به صفحه نمایش داده می‌شود.

برنامه شما تماس های برگشتی به (به طور مثال می‌توانیم به بند بعدی اشاره کنیم) مشخص می‌کند تا توسط حلقه اصلی فراخوانی شود ؛ ولی اگر پاسخ طول کشید یا پاسخی دریافت نکردید حلقه اصلی خراب است و دیگر کار نخواهد کرد .

شما در kivy نباید از حلقه های نامتناهی یا طولانی یا حلقه هایی که می‌خوابند استفاده کنید کد زیر مثالی از دو مورد است :

while True:

animate_something()

time.sleep(.10)

زمانی که شما کار بالا را انجام می‌دهید کد شما پاسخی نخواهد داد و شما جز صفحه‌ای سیاه چیز دیگری نخواهید دید.

ولی در عوض شما باید عملکرد()mate_something را مدام برنامه ریزی کنید تا بارها و بارها فراخوانی شود.

و شما قادر به داشتن تعامل با آن پنجره نخواهید بود.

برنامه ریزی یک رویداد یا کلید ( Event )

شما با استفاده است schedule_interval() می توانید X بار در ثانیه تابع ها و یا متود هارا صدا بزنید .

به طور مثال شما در کد زیر خواهید دید که تابعی به نام my_callback را 30 بار در ثانیه فراخوانی می‌کنیم:

def my_callback(dt):

print (‘My callback is called’,dt)

event = Clock.schedule_interval(my_callback, 1 / 30.)

شما برای عدم برنامه ریزی چند روش دارید که عبارت اند از ()cancel یا ()unschedule :

event.cancel

یا

Clock.unschedule(event)

از طرف دیگر شما می توانید پاسخ خود را به صورت false بازگردانید تا برنامه شما به صورت خودکار برنامه ریزی نشود:

count = 0

def my_callback(dt):

global count

count += 1

if count == 10:

print (‘ Last call of my callback, bye bye ! ‘)

return False

print (‘My callback is called’)

Clock.schedule_interval(my_callback, 1 / 30.)

برای اطلاعات بیشتر از مهندسی و ساختار Event ها به kivy.org مراجعه فرمایید .

مقالات بیشتر:

نصب فریم ورک کیوی

مهندسی فریم ورک کیوی

در www.pythoniha.ir

آگوست 5, 2020

۱ پاسخ به "Event ها و Properties در Kivy"

  1. امیررعلی دولتی نژادآگوست 4, 2020 از 1:10 ق.ظپاسخ

    داداش دمت گرم من متوجه نشدم البته دانششو نداشتم ولی کارات عالیه

ارسال یک پیام

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

question