کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

برنامه نویسی GUI با Python

ساخت و توسعه ی لایه ی UI اپلیکیشن با زبان پایتون – برنامه نویسی GUI با Python

پایتون امکانات متعددی برای ساخت و توسعه ی GUI یا لایه رابط کاربری اپلیکیشن ارائه می دهد که در زیر به پرکاربردترین و کاراترین آن ها اشاره می کنیم:

  • Tkinter: به طور پیش فرض به همراه ویرایش های متعارف زبان پایتون در اختیار برنامه نویس قرار می گیرد که رابط یا interface شی گرا جهت استفاده از ابزار tk در بستر محیط پایتون فراهم می آورد. در مبحث حاضر نیز از این ابزار برای توسعه ی لایه UI اپلیکیشن بهره خواهیم گرفت.
  • wxPython: عبارت است از یک سری ابزار طراحی و توسعه لایه ی UI اپلیکیشن که برای پایتون عرضه می شود. این ابزار به برنامه نویس اجازه می دهد تا برنامه های قدرتمند، کارا با رابط کاربری بسیار کارامد را به راحتی طراحی کرده و توسعه دهد. این ابزار به صورت یک ماژول یا افزونه پیاده سازی شده که کتابخانه ی پرطرفدار wxWidgets را در خود کپسوله سازی می کند (wrap). کتابخانه ی مزبور بسیار پرکاربرد بوده، با محیط های مختلف سازگار می باشد(cross-platform) و با زبان چند منظوره ی C++ نوشته شده است.
  • JPython: یک درگاه پایتون برای جاوا است که برنامه ها یا اسکریپت های پایتون می توانند به واسطه ی آن، به راحتی به کتابخانه ها و کلاس های (class library) جاوا در دستگاه محلی و میزبان خود دسترسی داشته باشند.

کتابخانه ی Tkinter

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

Tkinter کتابخانه ی GUI یک رابط شی گرای کارا برای مجموعه ابزار برنامه نویسی Tk GUI فراهم می سازد.

طراحی یک اپلیکیشن GUI با استفاده از Tkinter امر بسیار آسانی می باشد. کافی است مراحل زیر را طی نمایید:

  • ابتدا ماژول Tkinter را با استفاده از دستور import وارد نمایید.
  • پنجره ی اصلی اپلیکیشن GUI را ایجاد نمایید.
  • یک یا چند ابزارک رابط کاربری (widget) به آن اضافه نمایید.
  • event loop (حلقه ی اصلی و کنترل کننده ی روند کلی اجرای برنامه) را پیاده سازی نمایید. این حلقه به event هایی که کاربر آن ها را فعال می کند، پاسخ داده و آن ها را مدیریت می کند.
مثال
#!/usr/bin/python
import tkinter
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

خروجی کد را در زیر مشاهده می کنید:

TK Enter

ویدجت ها و ابزارک های رابط کاربری Tkinter

Tkinter چندین کنترل رابط کاربری همچون button، label و text box ارائه می دهد که برنامه نویس به واسطه ی آن لایه ی UI اپلیکیشن را طراحی و توسعه می دهد. به این کنترل ها در اصطلاح Widget یا ابزارک رابط کاربری گفته می شود.

در حال حاضر حدود 15 widget در Tkinter کپسوله شده است. در جدول ذیل تمامی این widget ها را به همراه شرح کاربرد مشاهده می کنید:

ابزارک رابط کاربری یا widget مربوطه
شرح
Button
توسعه دهنده برای ساخت و نمایش المان دکمه در UI اپلیکیشن از این widget استفاده می کند.
Canvas
کنترل Canvas به برنامه نویس این امکان را می دهد تا در نمایشگر اشکال هندسی همچون خط ساده، بیضی، چندضلعی و مستطیل ترسیم نماید.
Checkbutton
کنترل جاری برای طراحی و نمایش چندین گزینه (آیتم قابل گزینش) در قالب checkbox بکار می رود. با پیاده سازی این widget کاربر قادر خواهد بود همزمان چندین گزینه را انتخاب کند.
Entry
ابزارک رابط کاربری حاضر یک text field تک خطی در UI نمایش می دهد که مقادیر متنی از کاربر دریافت می کند.
Frame
کنترل رابط کاربری Frame به عنوان یک ظرف ایفای نقش کرده که دیگر widget ها در آن سازمان دهی شده و جای می گیرند.
Label
یک کنترل رابط کاربری که برای درج نوشته یا توضیحی مختصر برای سایر ویدجت ها ایفای نقش می کند. می تواند عکس را نیز شامل شود.
Listbox
ابزارک رابط کاربری Listbox برای ارائه و نمایش لیستی از آیتم های قابل گزینش برای کاربر مورد استفاده قرار می گیرد.
Menubutton
ابزارک رابط کاربری Menubutton جهت پیاده سازی عنصر منو در UI مورد استفاده قرار می گیرد.
Menu
ابزارک رابط کاربری جاری به منظور ارائه ی تعدادی دستور معین به کاربر در قالب یک لیست مورد استفاده قرار می گیرد. دستورات مزبور داخل Menubutton قرار می گیرند.
Message
المان رابط کاربری Message جهت پیاده سازی و نمایش text field های چند خطی در UI مورد استفاده قرار می گیرد.
Radiobutton
المان رابط کاربری حاضر جهت نمایش تعدادی گزینه در قالب Radiobutton که تنها امکان انتخاب یکی از آن ها در آن واحد وجود دارد، مورد استفاده قرار می گیرد.
Scale
المان رابط کاربری جاری جهت پیاده سازی ابزارک اسلایدر در UI اپلیکیشن بکار می رود.
Scrollbar
ابزارک Scrollbar جهت پیاده سازی یک نوارپیمایش و افزودن قابلیت راهبری به المان های رابط کاربری متعدد نظیر list box ها استفاده می شود.
Text
ابزارک رابط کاربری جاری جهت پیاده سازی قابلیت نمایش چند خط متن در UI مورد استفاده قرار می گیرد.
Toplevel
المان رابط کاربری Toplevel برای ساخت یک پنجره ی مستقل که المان والدی نداشته و فرزند المان دیگری نمی باشد، مورد استفاده قرار می گیرد.
Spinbox
ابزارک رابط کاربری Spinbox یک نوع دیگر از کنترل Entry ماژول Tkinter بوده و ظاهری مشابه کنترل مزبور دارد با این تفاوت که به کاربر اجازه می دهد تا لیستی ثابت از مقادیر را از کادر حاضر انتخاب کند.
PanedWindow
المان رابط کاربری PanedWindow ابزارکی است که نقش ظرف را ایفا کرده و قادر است تا همزمان چندین کادر را که به صورت عمودی یا افقی سازمان دهی (چیده) شده اند در خود جای دهد.
LabelFrame
یک نوع دیگر از Frame widget در ماژول Tkinter است که می تواند میزبان سایر المان های رابط کاربری باشد. این کنترل در واقع یک خط حاشیه پیرامون المان های دیگر ترسیم می کند و قادر است علاوه بر خط ساده متن نیز به عنوان حاشیه ی المان ها لحاظ نماید.
tkMessageBox
با بهره گیری از این ابزارک می توانید المان message box را جهت نمایش پیغام برای کاربر در UI پیاده سازی کنید.

Attribute ها و ویژگی های متعارف کنترل های رابط کاربری

در زیر برخی از attribute های مهم کنترل های رابط کاربری که با مقداردهی آن ها می توانید ویژگی هایی نظیر اندازه، رنگ و فونت المان ها را تنظیم نمایید، مشاهده می کنید:

  • Dimensions
  • Colors
  • Fonts
  • Anchors
  • Relief styles
  • Bitmaps
  • Cursors

مدیریت هندسه و چیدمان المان ها

تمامی widget های Tkinter به متدهای geometry (مدیریت چیدمان المان ها) دسترسی دارند. این متدها قادر هستند که ابزارک های رابط کاربری را داخل ناحیه ی میزبان سازمان دهی کرده و چدیمان آن ها را مدیریت کند. Tkinter کلاس های زیر را جهت مدیریت چیدمان المان ها در دسترس قرار می دهد. این کلاس ها به شرح زیر می باشند: pack، grid و place.

  • متد ()pack – تابع حاضر المان های رابط کاربری را به صورت خانه هایی داخل یک بلوک در کنار هم جای می دهد و سپس آن ها را داخل کنترل رابط کاربری پدر (parent widget) سازمان دهی می کند.
  • متد ()grid – تابع جاری ابزارک های رابط کاربری را در ساختاری جدول مانند و به طور سطر و ستون چیده و سپس آن ها را داخل المان والد سازمان دهی می کند.
  • متد ()place – تابع جاری ابزارک ها را با جایگذاری آن ها در موقعیت خاص داخل المان پدر، سازمان دهی می کند.
1396/02/19 17080 4656
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...