واسط گرافیکی پایتون با kivi

شروع یک پروژه gui در پایتون به نوبه خودش کاری بسیار دلهره اوره . در پایتون کتابخونه هایی مثل Tkinter اغلب ذهن برنامه نویسان رو بهم میریخت چون که برای یک اینترفیس ساده باید هزاران حط کد مینوشتند .واقعیت اینه که اکثر این کتابخونه ها پوسته های محدودی دارند و برای کوچکترین تغییری باید از نو ساخته شوند .

چطور واسط طراحی کنیم؟

خب سوال اینه که چطور می تونیم با پایتون یک اپلیکیشن طراحی کنیم که تو سیستم عامل های مختلف قابل استفاده باشه ؟ اینجاست که کتابخانه هایی مثل kivi و QT وارد می شوند .QT  در حالی یک کتابخونه بسیار عالیست که دارای مسایل مربوط به صدور مجوز برای محصولات تجاریست . QT افزونه های فوق العاده ای داره که تنها با با کشیدن و رها ان در محیط می تونید GUI را توسعه دهید . اگر نمیخواهید لایسنس بگیرید و برای سرگرمی می خواهید پروژه بزنید پیشنهاد می کنم که این کتابخونه رو امتحان کنید.بیاییم راجب kivi صحبت کنیم .kivi یک ابزار فوق العاده برای خلق gui برای ویندوز و لینوکس و اندروید و ای او اس است که یک اینترفیس روون با کامپوننت های داخلی داره که دیگه نیازی نیست همه چیز و از اول بنویسیم .

مثال

خب بیاییم یک برنامه ساده با kivi رو ببینیم :

خب اینجا شما دو تا برنامه می بینید . بیایید یه نگاهی به برنامه اول بندازیم . ما با کلاس MyApp شروع کردیم . اگر با قسمت شی گرایی پایتون آشنا نیستید پیشنهاد می کنم که اینجا را ببینید . در کیوی خطوط اول برای واردن کردن کتابخانه هاست.

خط اول از kivi د رخواست کرده است که اکوسیستم application را وارد برنامه کند که چیز کاملا ضروری برای ایجاد کلاس kivi است .سپس از پکیج uix کلاس button را فراخوانی کردیم . شما اینو زیاد در برنامه نویسیkivi خواهید دید چون که تمام ویجت ها و پوسته ها از این پکیج استفاده می کنند .

این تابع اساسا به UI برنامه وافعی اشاره می کند . همینطور که می بینید ما button را درون این تابع تعریف کردیم . می تونیم اون رو به عنوان یک تابع رندر تصور کنیم که توسط kivi چندین بار اجرا شده تا پوسته را در صفحه نمایش ترسیم کند .

Button با یک اپشن ساده به نام text تعریف شده البته که آپشن های دیگری هم وجود داره که می تونید آنها را اینجا بببنید .حالا اگر برنامه را اجرا کنید خروجی زیر را می بینید .

output

اما این خیلی محدوده .اینطور نیست ؟ پس بیایید جداش کنیم . این جایی است که دومین نکته مهم وارد میشود .ما کدمون رو به دو تا تابع تقسیم کردیم . این خیلی کارها رو ساده می کنه . در واقع در تقسیم رابط، شما باید آن را به یک کلاس دیگر تقسیم کنید. در این مثال ما یک طرح بندی برای اشیا GUI ایجاد می کنیم . ما از BoxLayot استفاده می کنیم که بتونیم اشیا رو در باکس تنظیم کنیم . باکس میتونه افقی یا عمودی باشه . باکس به ضورت دیفالت افقی و دیگه لازم نیست این اپشن رو تغییر بدیم . چندین پوسته در کیوی وجود دارد که از آن ها می توان Kivy Grid، Stack، Scatter را نام برد موارد بیشتر را می توانید در اینجا ببینید .

برای اتچ کردن button به صفحه استفاده می شود. الان شما می تونید خروجی قطعه کد دوم را مشاهده کنید . به خاطر داشته باشید که این کوچکتر است ولی اولی قابل گسترش دادن است .

 

نوشته شده در

دیدگاهتان را بنویسید

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