یادداشت های من | رابط های گرافیکی

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

برای شما

قدم اول: انتخاب زبان و فریمورک/کتابخونه

خب اینجا ما بیشتر درباره پایتون بحث میکنیم:) ولی زبون های دیگه، و قوی تر، هم هستند که باید با توجه به هدفتون تصمیم بگیرید از کدوم استفاده کنید.

مثلا اگه به C++ تسلط دارید، فریمورک Qt احتمالا بهترین گزینه برای شماست، هم برای طراحی کردن و دیزاین برنامه داره هم ابزار ها و ویجت هاش زیاده که باعث شده قوی بشه. توی جاوا هم چند مورد هست که من اشنایی ندارم.

https://virgool.io/@mersap_co/10-%D8%AF%D9%84%DB%8C%D9%84%DB%8C-%DA%A9%D9%87-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A7%D8%B2-qt-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%DB%8C%D8%AF-y5fwehdsvmfr

10 دلیلی که باید از Qt استفاده کنید ؟
10 دلیلی که باید از Qt استفاده کنید ؟
اگه شما هم وارد دنیای برنامه نویسی شده باشید ، مطمئنن یه جاهای به کارایی برمیخورید که نیاز دارید تا یک رابط کاربری GUI برای برنامتون هرچن…

یا اگه از بچه های JS کار هستید به الکترون یه سری بزنید. الکترون واسه ساختن برنامه های دسکتاپه، جوری که انگار نشستید دارید برای یه سایت طرح میزنید! یعنی با HTML و CSS و JS. بعدش میتونید از کتابخونه ها هم کمک بگیرید، مثلا react یه کتابخونه است که توی طرح کردن UI کمک خوبی میکنه، همچنین هوای JSX رو داره! حالا این دوتا رو توی هم بریزید ببینید چی میشه:)‌

لوگوی electron
لوگوی electron

البته react native هم هست که از نظر ظاهر شبیه react خودمونه، ولی در کل فرق داره. در واقع این یکی برای ساختن برنامه های android و IOS است؛ البته میشه با proton native میشه برنامه دسکتاپ ساخت که سینتکسش تقریبا مثل react native میمونه.

لوگوی react
لوگوی react

به هر حال، هرکس سلیقه خودش و برنامه خودشو داره و مطابق اون یه مورد رو انتخاب میکنه. توی پایتون هم من مواردی رو که دیدم رو اینجا معرفی میکنم بعلاوه توضیحات مختصر:

Tkinter

یه نمونه برنامه
یه نمونه برنامه

معمولا کسی که پایتون کار کرده باشه حداقل یه بار این اسم رو شنیده. اگه از دور بخواید بهش نگاه کنید، واسه کساییه که میخوان یه گرافیک سریع و ساده بزنن و تمام:) و اگه بخواید از نزدیک بهش نگاه کنید… منم نمیدونم! شاید بشه ازش یه چیز خفن درآورد، شایدم نه. در هر صورت اگه حوصله غرق شدن توی این بحث گرافیک برنامه رو ندارید، ولی نیازش دارید، راجبش یه سرچی کنید.

PyQt / PySide

لوگوی PyQt
لوگوی PyQt
لوگوی PySide
لوگوی PySide

در واقع Qt اصالتاً واسه C++ طراحی شده، ولی توی پایتون هم میتونید ازش استفاده کنید. قابلیت هایی که Qt داره باعث شده به یکی از قدرتمندترین ها تبدیل بشه، حالا اینکه عیناً همه این ابزار هارو(که توی C++ در دسترس است) میشه توی پایتون هم استفاده کرد یا نه برای من مشخص نیست، ولی قطعا اگه سمتش برید، با فرض عجله نداشتن و حوصله داشتن برای کار کردن روش، ضرر نمیکنید. برنامه هایی که باهاش نوشته شده نشون میده که برای ساختن یه برنامه با ظاهر خوب، گزینه مناسبیه.

بین PySide و PyQt یه تفاوت هایی هست که اینجا میتونید مطالعه کنید.

wxPython

لوگوی wxPython
لوگوی wxPython

اینم یکی از موارده. نوشتنش بنظر شبیه tkinter است و در ظاهر هم چیز نرمالیه. زیاد سمتش نرفتم، ممکنه برای کسی جالب باشه و ممکنه هم نباشه! در هر صورت یه نگاه اگه خواستید بندازید، ضرری نداره:)

kivy

لوگوی kivy
لوگوی kivy

یادمه حدود یه سال پیش سمتش رفته بودم یا به عبارتی غرقش شده بودم، ولی تهش پشیمون شدم:|

احتمالا از مواردی باشه که نیاز به سروکله زدن زیادی داره. اگه میخواید یه چیز جدید رو تجربه کنید که هیچ؛ولی اگه به امید ساختن یه برنامه اندروید اومدید سراغ kivy، از من به شما نصیحت که بیخیال بشید! یا حداقل دلیل انتخاب‌تون رو عوض کنید. من اگه باشم میرم سمت react native هرچند که توی پایتون نیست. البته، اگر هم اصرار دارید، بنظر میاد پایلی کارایی دربارش کرده:) از ما اطلاع رسانی بود.

PyGTK

لوگوی GTK
لوگوی GTK

ممکنه با اسم pygobject یا gi بشناسیدش، از اسمش هم مشخصه که چیکاره است(البته اگه با gtk اشنایید) پس فکر نکنم نیاز به اضافه‌گویی باشه:)

تعریف خودش از خودش:

PyGObject is a Python package which provides bindings for GObject based libraries such as GTK, GStreamer, WebKitGTK, GLib, GIO and many more.
It supports Linux, Windows and macOS and works with Python 3.6+ and PyPy3. PyGObject, including this documentation, is licensed under the LGPLv2.1+.

pyforms

لوگوی pyforms
لوگوی pyforms

در واقع این فریمورک خودش به ۳ زیرمجموعه تقسیم میشه:

  • pyforms-gui
  • pyforms-web
  • pyforms-terminal

که بخش با pyforms-gui کار خواهید داشت. بنظر میرسه کارکردش اینه که شما یه برنامه بنویسید و توی هر ۳ بخشی که گفتیم بتونه اجرا بشه(البته برای pyforms-web احتمالا کمی دردسر داشته باشه). تو بخشی که دربارش صحبت میکنیم از Qt قدرت گرفته و هرچند که زیاد معروف نیست، ولی بنظر کتابخونه خوبیه. اگه زیاد نمیخواید درگیر ریزکاریا بشید، یه سری بزنید بهش.

PySimpleGUI

یه نمونه برنامه
یه نمونه برنامه

سعی کرده که بتونید خیلی راحت یه برنامه رو بالا بیارید و بره پیِ کارش:) اگه سر ظاهر برنامه وسواس ندارید که یه چیز خیلییی خفن بشه، خیلی خوبه این یکی. ولی اگه بخواید یه کار بزرگ و خفن انجام بدید، بنظر میاد یکم وقت بیشتر نیاز داشته باشید.

libavg

حتی سمتش هم نرفتم:) ولی گفتم تو لیست باشه، ممکنه همونی باشه که نیاز دارید.

BeeWare / Toga

لوگوی BeeWare!
لوگوی BeeWare!
لوگوی toga!
لوگوی toga!

بنظر تازه وارده، مثل kivy. اگه کارتون جدّی و مهمه که بنظرم بیخیال بشید، ولی اگه از سرِ بیکاری اومدید یه نگاه بندازید.

لینک ها

در آخر…

یه چیزی انتخاب کنید که پشیمون نشید، مثلا اگه برنامه‌تون نیاز به یه فریمورک خیلی خوب داره یا وقت زیادی ندارید، دنبال یه چیزی باشید که رفرنس و منابع و نمونه های خوبی داشته باشه.

و طبق معمول: ماسک بزنید! خیلی مهمه:)

نویسنده مطلب: M.M. Tahmasbi

منبع مطلب

به فکر سرمایه‌گذاری هستی؟

با هر سطحی از دانش در سریع‌ترین زمان با آموزش گام به گام، سرمایه گذاری را تجربه کن. همین الان میتونی با لینک زیر ثبت نام کنی و ۱۰ درصد تخفیف در کارمزد معاملاتی داشته باشی

ثبت نام و دریافت جایزه
ممکن است شما بپسندید
نظر شما درباره این مطلب

آدرس ایمیل شما منتشر نخواهد شد.