رابط کاربری گرافیکی (GUI)

پایتون گزینه‌های مختلفی را برای توسعه رابط کاربری گرافیکی (GUI) ارائه می‌دهد. مهم‌ترین آنها به شرح زیر است:

رابط‌های فراوان دیگری هم وجود دارند که با جستجو در اینترنت می‌توانید به آنها دسترسی بیابید.

Tkinter

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

به مثال زیر توجه کنید:

import tkinter
top = tkinter.Tk()

# Code to add widgets will go here...

top.mainloop()

این تکه کد پنجره‌ای به شکل زیر ایجاد خواهد کرد:
gui in python

کنترل‌های Tkinter

Tkinter کنترل‌های مختلفی مانند button ،label و text box را برای استفاده در برنامه‌های گرافیکی فراهم کرده است. معمولاً به این کنترل‌ها، عنصر یا widget می گویند، ولی ما در این سری آموزشی به آنها کنترل می گوییم. در حال حاضر 15 نوع کنترل در Tkinter وجود دارد که در جدول زیر لیست آنها را مشاهده می‌کنید:

کنترل شرح
Button برای نمایش دکمه‌ها در برنامه گرافیکی استفاده می‌شود.
Canvas برای کشیدن شکل‌های مختلف مانند: خطوط، دایره، چند ضلعی و مستطیل در برنامه استفاده می‌شود.
Checkbutton برای نمایش چند انتخاب به صورت check box است. کاربر می‌تواند چند گزینه را همزمان انتخاب کند.
Entry نمایش جعبه یک خطی برای دریافت متن از کاربر
Frame به عنوان یک نگهدارنده و مرتب کننده دیگر کنترل‌ها استفاده می‌شود.
Label برای نمایش عنوان تک خطی برای دیگر کنترل‌ها استفاده می‌شود. همچنین می‌تواند تصویر را نیز نمایش دهد.
Listbox لیستی از گزینه‌ها را برای کاربر مهیا می‌کند.
Menubutton برای نمایش منو در برنامه استفاده می‌شود.
Menu دستورات مختلفی را برای کاربر فراهم می‌کند. این دستورات درون Menubutton ها قرار گرفته‌اند.
Message برای نمایش فیلدهای متنی چند خطی، به منظور دریافت ورودی از کاربر استفاده می‌شوند.
Radiobutton تعدادی گزینه را به صورت دکمه‌های رادیویی نمایش می‌دهد. کاربر تنها یک گزینه را می‌تواند انتخاب کند.
Scale برای نمایش کنترل slider استفاده می‌شود.
Scrollbar برای اضافه کردن امکان اسکرول به کنترل‌ها مختلف از قبیل listbox ها استفاده می‌شود.
Text برای نمایش متن چند خطی استفاده می‌شود.
Toplevel امکان قرار گرفتن و نمایش چند پنجره مجزا را در یک برنامه فراهم می‌کند.
Spinbox نوع دیگری از entry است که امکان انتخاب از میان چند گزینه ثابت را فراهم می‌کند.
PanedWindow به عنوان نگهدارنده کنترل‌ها دیگر استفاده می‌شود و می‌تواند آنها را به صورت افقی یا عمودی مرتب کند.
LabelFrame یک نگهدارنده ساده است که هدف اولیه آن به عنوان جدا کننده یا دربرگیرنده کنترل‌ها دیگر می‌باشد.
tkMessageBox برای نمایش پنجره‌های پیام به کاربر استفاده می‌شود.

صفات استاندارد کنترل‌ها

کنترل‌های TKinter دارای صفاتی هستند که با استفاده از آنها می توان، اندازه، رنگ و فونت و … کنترل را مشخص کرد. در زیر به این صفات اشاره شده است:

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

چیدمان کنترل‌ها

همه کنترل‌ها Tkinter به توابع خاصی برای مشخص کردن نحوه چیدمان عنصر دسترسی دارند. هدف این توابع مرتب کردن کنترل‌ها بر روی عنصر والد (دربرگیرنده‌شان) است. Tkinter سه تابع زیر را برای این منظور ارائه می‌دهد:

  • ()pack: این تابع کنترل‌ها را قبل از قرار گرفتن بر روی فرم والدشان، درون بلوک‌هایی قرار می‌دهد.
  • ()grid: این تابع کنترل‌ها را در ساختارهایی شبیه به جدول بر روی فرم والد مرتب می‌کند.
  • ()place: این تابع کنترل‌ها را در موقعیت مشخصی بر روی فرم والد قرار می‌دهد.

در درس های آینده در مورد موارد ذکر شده در این درس به طور کامل توضیح می دهیم.