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

  • ورود
  • هیچ محصولی در سبد خرید نیست.

آموزش رابط گرافیکی پایتون : Tkinter

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

آیا می توان با پایتون یک نرم افزار طراحی کرد ؟!

طراحی نرم افزار های گرافیکی در پایتون به راحتی تمام امکان پذیر است و می توان با کتابخانه هایی نظیر Tkinter و یا PyQt5 این کار را به راحتی انجام داد . البته کتاب خانه های دیگری هم وجود دارد که توصیه نمی شود.

نرم افزار های طراحی شده فقط در ویندوز قابل استفاده هستند ؟!

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

طراحی نرم افزارهایی با محیط گرافیکی در پایتون کار سختی است ؟!

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

فرمت خروجی نرم افزار طراحی شده به صورت exe یا همان فایل اجرایی ویندوز است ؟!

خیر ، فرمت خروجی فایل هایی که به صورت گرافیکی در پایتون طراحی شده به صورت .py , pyx می باشد که می توانید با استفاده از تبدیل های دیگر این فرمت های فایلی را به یکدیگر تبدیل کنید و در نهایت یک فرمت فایل خروجی برای مثال اگر برای ویندوز نیاز دارید به صورت exe تهیه نمایید .

فهرست مطالب آموزشی:

مقدمه

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

شما در هر حالی که باشید و در هر سطحی از برنامه نویسی باشید و حتی گاهی ممکنه پیش بیاد که بخواید یک ربات تلگرام و یا حتی یک سایت طراحی کنید و یک از سری از کار ها رو نیاز باشه دیگه به صورتی دستی انجام ندید و یا ممکنه اوضاع خیلی بدتر باشه که به خواید یک نرم افزار را برای یک شرکت و یا یک شخص طراحی کنید اما خوب نیاز باشه

بعضی از تنظیمات اون نرم افزار به صورت دستی تغییر کنه و ممکن این کار بار ها و بار ها انجام بشه خوب خیلی از شرکت ها و اشخاصی که نیاز به نرم افزار دارند مطعمنا شاید دانش فنی دار با کد های زبان برنامه نویسی رو نداشته باشد به همین خاطر شما بلااجبار باید روی بیارید به سمت برنامه های گرافیکی و یا همان نرم افزار های GUI خودمان.

خوب اما این نرم افزار های به اصطلاح گرافیکی قرار چه کاری برای ما انجام بدن ؟!

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

  • نرم افزار ویرایشگر متن
  • نرم افزار بازی مار و پله
  • نرم افزار بازی دوز
  • نرم افزار دریافت مشخصات گرافیکی و سخت افزار سیستم عامل( فرقی نمی کنه چه سیستم عاملی باشه )

این نرم افزار ها فقط چند نمونه مقال کوچک بود تا با مدل های مختلف نرم افزار های گرافیکی بهتر اشنا بشید .

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

خوب سوالی که اینجا پیش میاد اینه که زبان برنامه نویسی پایتون ایا اصلا قابلیت این موضوع رو داره که نرم افزار های گرافیکی تولید کنه یا نه ؟!

جواب سوال بله هستش ! اما چجوری !؟

خوب زمانی که شما پایتون رو به صورت پیش فرض نصب می کنید با از طریق خود پکیج نصب کننده پایتون یا همون Packege Installer یه گزینه داره به نامه Tcl/TK که زمانی که شما تیک گزینه رو فعال کنید به صورت خودکار و پیشفرض محیط گرافیکی و اینترفیس پایتون برای شما فعال میشه اما بهتره باز هم بیشتر در مورد این موضوع بهتون توضیح بدیم .

Tk به عنوان پسوند GUI برای زبان برنامه نویسی Tcl توسط John Ousterhout به روز رسانی شد.

اولین انتشارش در سال 1991 بود. Tk در دهه 1990 بسیار موفقیت روبه رو بود ، زیرا یادگیری و استفاده از آن آسان تر از سایر ابزارهاست.بنابراین جای تعجب نیست که بسیاری از برنامه نویسان می خواستند به طور مستقل از Tcl از Tk استفاده کنند. به همین دلیل اتصال بسیاری از زبانهای برنامه نویسی دیگر از جمله :

Ada
Perl
Python(Tkinter)
و Ruby
به صورت کاملا مستقل شکل گرفت و فلسفه این که در واقع Tkinter از کجا اومده و در واقع به چه شکل به پایتون اضافه شده به این صورت هستش .

در کتابخانه TKinter چه کلاس هایی قراردارند ؟

  • TK
  • TCL
  • ScrolledText
  • tkColorChooser
  • tkCommonDialog
  • tkFileDialog
  • tkFont
  • tkMessageBox
  • tkSimpleDialog
  • Tkdnd
  • turtle

پایتون برای برنامه نویسی گرافیکی

پکیچ ها و ماژولهای متنوعی برای نوشتن برنامه های گرافیکی با پایتون وجود دارد که در لیست زیر به چندتا از معروف ترین اونها اشاره شده:

از بین تمامی این ابزارها کارکردن با پکیج tkinter ساده تر می باشد، علاوه بر سادگی این پکیج به صورت built-in در پایتون تعبیه شده است. به این معنی که بعد از نصب پایتون می توانیم از پکیج استفاده کنیم. ویژگی مهم دیگر این پکیج این است که برنامه های که با این پکیج ایجاد می شوند بر روی هر سیستم عامل به صورت native نمایش داده می شوند، مهم نیست برنامه خود را در سیستم عامل ویندوز یا لینوکس نوشته باشیم بعد از کامل کردن برنامه اگر برنامه را مثلا به سیستم عامل مک انتقال دهیم ویجیت های برنامه به صورت ویجیت های native مک نمایش داده می شوند. یعنی برنامه های که با tkinter نوشته می شوند بر روی سه سیستم عامل دسکتاپ Linux, Mac و Windows بدون نیاز به تغییر به صورت native نمایش داده می شوند.

پیش نیاز ها و نحوه نصب نسخه مناسب

در مورد نصب نسخه مناسب باید به عکس زیر دقت کنید زمانی که شما خود نرم افزار اصلی پایتون رو از سایت اصلی دانلود می کنید در واقع به همراه اون پکیج منجر یک نسخه به روزرسانی شده مناسب با پایتونی که در حال نصب اون هستید داخل همون بسته قرارداره اما چگونه زمانی که پایتون در حال نصب هستش متوجه بشیم که Tkinter در حال نصب هست برای ما به عکس زیر دقت کنید :

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

زمانی که تیک اون قستمی که داخل مستطیل هستش رو بزنید به صورت پیش فرض آخرین نسخه سازگار با پایتون مورد نظرتون برای شما نصب میشه و دیگر نیاز به تنظیمات اضافه و یا نصب پکیج های اضافه دیگری ندارید .

اما اگر برای استفاده از Tkinter نیاز به مشکل برخوردید می توانید با استفاده از خط فرمان یا همان کامند لاین یا cmd به صورت مستقیم از دستور زیر استفاده کنید .

pip install tk

و اگر از پکیج منجر های مثل Conda استفاده می کنید باید از دستور زیر استفاده کنید :

conda install -c anaconda tk

در غیر این صورت با استفاده از همان نصب کننده اصلی پایتون می توانید از مزیت های Tkinter بهره کافی را ببرید .

ساخت اولین نرم افزار

خوب به صورت دست گرمی نوشتن یک نرم افزار خیلی ساده رو شروع میکنیم تا هم شما بتونید از این نرم افزار لذت ببرید و هم بتوانید به صورت واقعی از این آموزش استفاده کنید .

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

  • اولین کار : طبعیتا اولین کار باید صدا کردن کتابخانه TKinter باشه
  • دومین کار : خوب ما اینجا باید یه شی رو برای نرم افزار تعریف کنیم تا نرم افزار بتونه با فراخانی آن شی بدنه اصلی خودش رو بسازه .
  • سومین کار : آخرین کاری که برای ساخت یک نرم افزار ساده باید انجام بدیم اینه که نرم افزاز ما باید بتونه هر لحظه خودش رو آپدیت کنه و داخله یک حلقه تکرار قرار بگیره .

قسمت عملی کار :

# 1
import tkinter as tk
#2
gui = tk.Tk()

#3 # loop
gui.mainloop()
کد بالا رو اگر وارد نرم افزار پایتون کنید یک خروجی به این شکل به شما نمایش میده .

معرفی Tkinter

اگر بخوایم به صورت کلی و سر تیتروار در مورد مشخصات این کتاباخنه صحبت کنیم می توانیم این کتابخانه را به 3 قسمت اصلی تقسیم کنیم :

قسمت اول : ابزارک ها یا ویجت ها

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

دکمه ها – دکمه های رادیویی – لیبل ها – قعطه کننده ها – لیست های آبشاری و …

  • button
  • canvas
  • checkbutton
  • combobox
  • entry
  • frame
  • label
  • labelframe
  • listbox
  • menu
  • menubutton
  • message
  • notebook
  • tk_optionMenu
  • panedwindow
  • progressbar
  • radiobutton
  • scale
  • scrollbar
  • separator
  • sizegrip
  • spinbox
  • text
  • treeview

قسمت دوم : تنظیمات کلی و سطح بالا

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

  • tk_chooseColor
  • tk_chooseDirectory
  • tk_dialog
  • tk_getOpenFile
  • tk_getSaveFile
  • tk_messageBox
  • tk_popup
  • toplevel

قسمت سوم : تنظیمات مربوط به صفحه بندی

این قسمت از تنظیمات مربوط به جا گذاری و بخش بندی قسمت های مختلف نرم افزاری می باشد به طور مثلا از مبحث pack می توان برای جایگذاری صحیح لیبل ها و یا دکمه ها استفاده نمود .

متود های مانند place و Grid هم نیز برای جایگزاری استفاده می شوند که در ادامه آموزش به نحوه استفاده دقیق آنان خواهیم پرداخت .

  • place
  • grid
  • pack

آموزش GoeMetry

اولین و مهمترین قسمتی که باید اشاره داشت در برنامه نویسی گرافیکی مربوط به مبحث تنظیم اندازه پنجره اجرایی یا همان ساز نرم افزارمان می باشد که با توجه به تنظیماتی که در Tkinter قرار دارد می توان به راحتی کار تنظیمات این موارد را انجام داد . اما چگونه :

در Tkinter سه مدل تنظیم اصلی برای اندازه سایز صفحه و جایگذاری آن ها مانند جایگذاری دکمه ها و لیبل ها و حتی خود صفحه وجود دارد به وصورت مثال برای تنظیم ساز صفحه با توجه به نیاز خود و اندازه پنجره می توانید از کد زیر استفاده کنید :

import tkinter as tk

gui = tk.Tk()

gui.geometry('200x200')

gui.mainloop()

توضیح کد بالا :
با توجه به این که اندازه نرم افزاری که ما نیاز داریم 200 پیکسل در 200 پیکسل می باشد سایز صفحه مورد نظر خود را می توانید در قسمت geometry تنظیم کنید .

نکته : اما نکته ای وجود دارد این موضوع است که چگونه می توان تنظیم کرد که نرم افزار در کدام قسمت از صفحه باز شود و شروع به اجرا کنید ، برای تنظیم این گزینه می توانید از همان قسمت geometry دو مورد دیگر تنظیم این قسمت اضافه کنید ، به صورت مثال به کد زیر دقت کنید :

import tkinter as tk

gui = tk.Tk()

gui.geometry('200x200+300+300')

gui.mainloop()

توضیح کد بالا :
با اضافه شدن 300+300 به قسمت geometry شما تعیین می کنید که نقطه مرکز نرم افزار 300 پیکسل از چپ و 300 پیکسل از بالا را در نظر بگیرد و سپس در آن نقطه شروع به اجرا شدن کند .

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

تست کد

تغییر سر تیتر نرم افزار :
برای تغییر سر تیتر نرم افزار باید از تکه کد زیر استفاده کنید :

gui.title('سر تیتر نرم افزار خود را اینجا وارد کنید ')

نکته :
به غیراز این مورد که شما می تونید برای نرم افزار خودتون یک سایز رو انتخاب کنید می توانید برای نرم افزار توضیح بدید که چه مقدار نرم افزار شما قابلیت این موضوع داشته باشه که تغییر سایز انجام بده که در اینجا ما از 2 متود زیر استفاده می کنیم . به کد زیر دقت کنید :

import tkinter as tk

gui = tk.Tk()

gui.geometry('200x200+300+300')

# در این قسمت شما می توانید مشخص کنید که نرم افزار تا چه اندازه ای قابل تغییر باشد

# کمترین سایزی که نرم افزار می تواند به آن تغییر کند 
gui.minsize(200,200)

# بیشترین سایزی که نرم افزار می تواند به آن تغییر کند 
gui.maxsize(250,250)

gui.mainloop()

اما چالشی که برای برنامه نویسان وجود دارد این موضوع است که گاهی اوقات نیاز است تا نرم افزار ساخته شده اصلا قابل تغییر نباشد در این صورت باید از تکه کد زیر استفاده کرد :

# البته با قرار دادن هر کدام از تنظیمات که مشخص شده می توان برای نرم افزار توضیح داد کدامک قسمت قابل تغییر باشد و کدام قسمت غیر قابل تغییر باشد 
window.resizable(width=False, height=False)

آموزش Pack

خوب داخل این بخش میخوایم برسیم به گزینه مدیریت دکمه ها و ویجت ها که در کدام مختصات از صفحه نرم افزار ما قرار بگیرند و راحت تر در چیدمان آن از این گزینه استفاده کنیم اما به غیر از متود pack یک سری از متود های زیر مجموعه وجود دارد که با استفاده از آن ها می توانیم بدون دادن مختصات صفحه نرم افزاری و فقط با کلمات جایگاه دقیق ویجت ها را در نرم افزار مدیریت کنیم که 3 کلمه اصلی برای استفاده از متود ها وجود دارد

  •  fill
  • expand
  • side
  • Pad

2 متود fill و expand در اجرای کلید ها باهم استفاده می شوند .اما منظور این 2 متود چه زمانی استفاده میشوند ؟
زمانی که شما یک نرم افزاری را به صورت واکنش گرا و یا با قابلیت تغییر مشخصات صفحه مینویسید نیاز دارید تا زمان تغییر صفحه نرم افزار دکمه ها و یا ویجت هایی دیگری که در نرم افزار قراردارند تغییر هم زمان با تغییر نرم افزار شما تغییر کنند به صورت مثال به عکس زیر دقت کنید !

متود های fill عبارت ان از :

  • X نرم افزار را مجاب می کند تا فقط در محور x تغییر کند.
  • Y نرم افزار را مجاب می کند تا فقط در محور Y تغییر کند.
  • BOTH نرم افزار را مجاب می کند تا در 2 محور اصلی تغییر کند.

متود های expand :

  • Flase از تغییر ویجت ها در نرم افزار جلوگیری میکند .
  • True نرم افزار مجاب به تغییر می کند .

به این تکه کد دقت کنید :

import tkinter as tk

mainframe = tk.Tk()

a = tk.Button(mainframe, text= 'Test')
b = tk.Button(mainframe, text= 'Test')

a.pack(fill=BOTH,expand = True)
b.pack(fill=BOTH,expand = True)
mainframe.mainloop()

متود بعدی متود Side که خود دارای تنظیمات زیر است :

  • TOP به صورت پیش فرض روی این گزینه تنظیم شده است
  • RIGHT
  • LEFT
  • BOTTON
import tkinter as tk
from tkinter.ttk import *

mainframe = tk.Tk()

a = tk.Button(mainframe, text= 'Test')
b = tk.Button(mainframe, text= 'Test 1')
c = tk.Button(mainframe, text= 'Test 2')

d = tk.Button(mainframe, text= 'Test')
a.pack(side=TOP)
b.pack(side=LEFT)
c.pack(side=TOP)
d.pack(fill=BOTH,expand = True)
mainframe.mainloop()

متود آخر که بیشتر برای چینش ویجت ها در Tkinter استفاده می شود متود pad یا همان تغییر جایگاه بر اساس مختصات نرم افزار می باشد که خود این متود دارای 2 تنظیم به نام های x , y است که در دستور زبان برنامه نویسی با دستور زیر اجرا می شود .

  • padx
  • pady

با مشخص کردن مختصات از طریق 2 محور x ها و y ها می توانید می توانید جایگاه ویجت ها را به صورت مناسب در نرم افزار خود مشخص کنید . به صورت مثال به کد زیر دقت کنید :

import tkinter as tk

mainframe = tk.Tk()

a = tk.Button(mainframe, text= 'Test')

a.pack(padx=1,pady=20)

mainframe.mainloop()

آموزش Grid

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

  • Column ستونی برای قرار دادن ابزارک
  • Columnspan این ویجت چند ستون را اشغال می کند.
  • Ipadx تعداد پیکسل های افقی در داخل محور ویجت را مشخص می کند
  • Ipady تعداد پیکسل های عمودی در داخل محور ویجت را مشخص می کند
  • Padx تعداد پیکسل های افقی در خارج محور ویجت را مشخص می کند
  • Pady تعداد پیکسل های عمودی در خارج محور ویجت را مشخص می کند
  • Row ردیف کردن ابزارک ها
  • Rowspan تعداد ویجت ها اشغالی در هر ردیف را مشخص می کند .
  • Sticky
    وقتی یک ویجت کوچک تر از پنجره نرم افزار باشد با استفاده از این متود می توان تعیین کرد ویجت به کدام سمت هدایت شود از جمله متود های این تابع می توان به متود های زیر اشاره کرد :
  • N, E, S, W, NE, NW, SE

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

from tkinter import *
root = Tk()
btn_column = Button(root, text="I'm in column 3")
btn_column.grid(column=3)

btn_columnspan = Button(root, text="I have a columnspan of 3")
btn_columnspan.grid(columnspan=3)

btn_ipadx = Button(root, text="ipadx of 4")
btn_ipadx.grid(ipadx=4)

btn_ipady = Button(root, text="ipady of 4")
btn_ipady.grid(ipady=4)

btn_padx = Button(root, text="padx of 4")
btn_padx.grid(padx=4)

btn_pady = Button(root, text="pady of 4")
btn_pady.grid(pady=4)

btn_row = Button(root, text="I'm in row 2")
btn_row.grid(row=2)

btn_rowspan = Button(root, text="Rowspan of 2")
btn_rowspan.grid(rowspan=2)

btn_sticky = Button(root, text="I'm stuck to north-east")
btn_sticky.grid(sticky=NE)

root.mainloop()

آموزش متود Place

از طریق روش place () که برای همه ابزارکهای استاندارد در دسترس است می توانید به مدیریت مکانی دقیق هر ابزارک با همان ویجت ها دسترسی پیدا کنید. اما چگونه ؟

متود place() دارای زیر مجوعه های زیر است به نام های :

  • anchor
  • bordermode
  • height, width
  • relheight, relwidth
  • relx, rely
  • x, y

متود های پایه ای ویجت ها

این متود ها در تمامی ویجت ها قابل استفاده و تنظیم میباشد . بهصورت مثال اگر تنظیم پیش فرض هر ویجت را به صورت زیر در نظر بگیریم :

widget(master=None,**options)

با استفاده از تنظیمات زیر می توانیم مقدار تنظیم شده برای ویجت خودمان را به صورت پیش فرض تغییر دهیم .

  • activebackground که برای ایجاد رنگ پس زمینه هنگام فعال کردن کلید
  • activeforeground که برای ایجاد رنگ بر روی نوشته ها هنگام کلیک
  • anchor بیانگر محل قرار گیری کلید یا المان های دیگر هنگامی که ایجاد می کنید در نظر گرفته می شود که شامل (N,NE,E,SE,S,SW,W,NW,CENTER) می شود.
  • background یا bg که برای رنگ پس زمینه اصلی کلید استفاده می شود
  • bitmap برای نشان دادن یک bitmap در کلید استفاده می شود (مثل قرار دادن آیکون)
  • borderwidth یا bd برای ایجاد حاشیه و بوردر کناری کلید و یا ویدجت استفاده می شود.
  • command برای ایجاد عملکردی برای کلید استفاده می شود که می بایست به یک تابع یا هر عمل دیگری که مد نظر است متصل شود.
  • compound برای تنظیم این است که چطور تصویر و نوشته در کلید با هم در تعامل باشند. به صورت پیش فرض اگر عکس و یا bitmap به دکمه نسبت داده شده باشد به جای نوشته قرار می گیرد.از جمله آپشن های آن می توان به جایگیری BOTTOM , LEFT,RIGHT,TOP اشاره کرد ولی به صورت پیشفرض CENTER هستش.
  • cursor نشان دادن اشاره گر عادی موس به جای دست
  • default در صورت فعال بودن این مورد ماژول Tkinter بر اساس هر سیستم عامل کلید را تنظیم خواهد کرد که باعث تغییراتی خواهد بود.
  • disableforeground رنگی که هنگام غیر فعال بودن ویدجت یا کلید می بایست به خود بگیرد
  • font مشخصا برای تغییر فونت نوشته های روی کلید استفاده می شود، که می توانید نام فونت مورد نظر را در غالب رشته به این المان دهید.
  • foreground یا fg برای رنگ آمیزی نوشته روی کلید یا ویدجت استفاده می شود.
  • height برای تنظیمات ارتفاع کلید استفاده می شود
  • highlightbackground رنگ بوردر در هنگامی که Focus بر روی کلید فعال باشد
  • highlightcolor رنگ کلید در هنگامی که Focus بر روی کلید فعال باشد
  • highlightthickness میزان پر بودن و ضخامت بوردر هنگام focus بر روی کلید
  • image تصویری که می خواهید بر روی کلید به نمایش درآید
  • justify بیانگر این است که چطور می خواهید نوشته های روی کلید یا ویدجت قرار بگیرند یا به اصطلاح align شوند. که شامل LEFT,RIGHT,CENTER می شود.
  • overrelief به نوعی برای تنظیمات focus استفاده می شود و زمانی که فوکوس انجام شد عملیات دیگری نیز صورت بگیرد
  • padx برای ایجاد فاصله از دو طرف در طول
  • pady برای ایجاد فاصله از دو طرف در عرض
  • relief آپشن هایی برای زمانی که کلید فشرده یم شود که شامل SUNKEN,RAISED,GROOVE,RIDGE,FLAT می باشد که بهص ورت پیشفرض RAISED است.
  • repeatdelay اجرای مجدد با تاخیر
  • repeatinterval اجرای سلسله وار
  • state وضعیت کلید و یا ویدجت مورد نظر که در سه حالت NORMAL , ACTIVE,DISABLED قرار می گیرد. که به صورت پیشفرض به حالت NORMAL است.
  • takefocus بیان گر این است که کاربر می تواند با زدن tab به این المان دست پیدا کند یا خیر به صورت پیشرفض این گزینه فعال است.
  • text نوشته ای که می خواهد بر روی آن المان قرار بگیرد
  • textvariable برای نگه داری وضعیت کلید و دیگر المان ها استفاده می شود که می تواند ماهیت رشته و یا عدد را داشته باشد که می توان با استفاده از آن به وضعیت فعلی کلید در جای جای کد پی برد.
  • underline برای زیر خط گذاری در نوشته های المان استفاده می شود که در پیشفرض بر روی -1 قرار دارد.
  • width برای تعیین میزان عرض المان استفاده می شود که برای مثال می تواند عدد صحیح را برای عرض دریافت کند
  • wraplength بیانگر این است که چه زمان می بایست المان مورد نظر نوشته هایش تقسیم شوند. که به صورت پایه 0 است.

آموزش Label

برچسب ویجتی است که متن یا تصاویر را نمایش می دهد ، معمولاً کاربران فقط آن را مشاهده می کنند اما در غیر این صورت با آنها تعامل ندارند. از برچسب ها برای شناسایی کنترل ها یا سایر قسمت های رابط گرافیکی ، ارائه بازخورد متنی یا نتایج دیگر جهت ارایه اطلاعات به کاربر استفاده می شود.
نمونه کد دسترسی به Label در پایتون :

import tkinter as tk

label = tk.Label(parent, text='Full name:')

متود ها :

  • text رشته متنی را مشخص می کند که در داخل ویجت نمایش داده شود.
  • textvariable اسمی را مشخص می کند که مقدار آن به جای منبع گزینه text استفاده شود.
  • underline زیر قسمت مورد نطر خط می کشد .
  • image تصویری را برای نمایش مشخص می کند.
  • compound نحوه نمایش تصویر نسبت به متن را مشخص می کند
  • width اگر بیشتر از صفر باشد ، مشخص می کند که در عرض نویسه چه فضایی را برای برچسب متن اختصاص دهید ، اگر کمتر از صفر باشد ، حداقل عرض را مشخص می کند. در صورت صفر یا نامشخص بودن ، از عرض طبیعی برچسب متن استفاده می شود.
ردیف نام ابزارتوضیحات
1Buttonاز دکمه برای افزودن انواع مختلف دکمه ها به برنامه پایتون استفاده می شود.
2Canvasاز ابزارک بوم برای کشیدن اشکال هندسی روی پنجره استفاده می شود.
3Checkbuttonدکمه های چک شده
4Entryکنترل ورودی های تک خطی و پردازش آن ها
5Frameنحوه تقسیم بندی فضا و اضافه کردن ویجت های دیگر
6Labelنمایش برچسب های متنی و اطلاعات و پیغام ها به کاربر
7ListBoxنمایش لیستی از گزینه ها به کاربر
8Menubuttonنمایش منو راست کلیک در نرم افزار
9Menuساخت منو برای نرم افزار
10Messageبرای نمایش جعبه پیام به کاربر استفاده می شود.
11Radiobuttonساخت دکمه های رادیویی
12Scaleساخت اسلایدر استفاده می شود .
13Scrollbarساخت اسکرول بار
14Textبا Entry تفاوت دارد زیرا یک رشته چند خطی در اختیار کاربر قرار می دهد
15Toplevelبرای ساخت یک چنجره جدا گانه استفاده می شود .
16Spinboxبرای انتخاب مقادیر ورودی از ابزارک ها استفاده می شود .
17PanedWindowپردازش محسبات داخلی نرم افزاربه صورت متن
18LabelFrameجدا کننده فریم ها با متن

آموزش Button

از ابزارک Button برای افزودن دکمه ها در برنامه پایتون استفاده می شود. این دکمه ها می توانند متن یا تصاویری را نشان دهند که هدف دکمه ها را منتقل می کند. می توانید یک عملکرد یا یک روش را به یک دکمه وصل کنید که با کلیک روی دکمه به طور خودکار فراخوانی می شود.

نحوه نگارش دکمه ها :

ِDokme = Button ( master, option=value, ... )

دکمه ها دارای 2 پارامتر اصلی می باشند :

  • master که نشان دهنده پنجره اصلی است .
  • options سایر تنظیمات نظیر فرم دهی را می توان با این تنظیمات انجام داد .

نمونه پارامتر های تنظیمات استایل دهی به کد می توانید به این قسمت رجوع کنید :
متود های پایه ای ویجت ها

  • متود های اصلی ساخت دکمه :
import tkinter as tk

main = tk.Tk()

a = tk.Button(main, text= 'این یک دکمه تست می باشد ')

a.pack()
main.mainloop()

با توجه به کد بالا شما یک دکمه به نام دکمه تست ساخت اید .با استفاده از کد زیر می توانید با کلیک بر روی آن دکمه تابع مورد نظر خود را فراخانی کنید .

a = tk.Button(main, text= 'این یک دکمه تست می باشد ', command='نام تابع مورد نظر خود را اینجا بنویسید ')

2 متود اصلی برای فراخانی تابع موجود وجود دارد که این 2 تابع عبارت اند از :

  • flash()
  • invoke()

آموزش Canvas

Canvas یک منطقه مستطیل شکل است که برای طراحی تصاویر یا طرح های پیچیده دیگر طراحی شده است. می توانید گرافیک ، متن ، ابزارک یا قاب را روی یک بوم قرار دهید.

نمونه کد :

can = Canvas ( master, option=value, ... )

این کد هم مانند کد بالا دارای یک تنظیم اصلی برای فریم و دارای یک سری تنظیمات کلی می باشد .

پارامترهای موجود در این کد را می تواند به صورت زیر نام برد .

  • create_arc این متود برای ساخت شکل دایره استفاده می شود .
  • create_image این متود برای ساخت عکس ها استفاده می شود .
  • create_line این متود برای اسها خطوط استفاده می شود .
  • create_oval این متود برای ساخت بیضی استفاده می شود .
  • create_polygen این متود برای ساخت اشکال چند ضلعی به کار می رود .

به تکه کد زیر دقت کنید :

# دایره
coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")

#عکس
filename = PhotoImage(file = "sunshine.gif")
image = canvas.create_image(50, 50, anchor=NE, image=filename)

#خطوط
line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)

#بیضی
oval = canvas.create_oval(x0, y0, x1, y1, options)

#چند ضلعی
oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)

آموزش CheckButton


Checkbutton برای ردیابی گزینه های کاربر ارائه شده به برنامه استفاده می شود. به عبارت دیگر ، می توان گفت که از Checkbutton برای اجرای گزینه های روشن / خاموش استفاده می شود.

دکمه تأیید می تواند حاوی متن یا تصاویر باشد.

 Checkbutton بیشتر برای ارائه گزینه های زیادی به کاربر استفاده می شود که از بین آنها ، کاربر باید یکی را انتخاب کند.

: Syntax

dokme = checkbutton(master, options)  

متود ها :

1deselect()برای خاموش کردن دکمه فراخوانی فراخوانی می شود.
2flash()دکمه تأیید بین رنگهای فعال و عادی چشمک می زند.
3invoke()این روش مرتبط با دکمه تأیید را فراخوانی می کند.
4select()برای روشن کردن دکمه فراخوانی فراخوانی می شود.
5toggle()برای جابجایی بین دکمه های مختلف استفاده می شود.

کد به صورت نمونه :

from tkinter import *   
  
gui = Tk()  
  
gui.geometry("200x200")  
  
checkvar1 = IntVar()  
  
checkvar2 = IntVar()  
  
checkvar3 = IntVar()  
  
chkbtn1 = Checkbutton(gui, text = "Python / tkinter", variable = checkvar1, onvalue = 1, offvalue = 0, height = 2, width = 10)  
  
chkbtn2 = Checkbutton(gui, text = "Python / AI", variable = checkvar2, onvalue = 1, offvalue = 0, height = 2, width = 10)  
  
chkbtn3 = Checkbutton(gui, text = "Python / cv2", variable = checkvar3, onvalue = 1, offvalue = 0, height = 2, width = 10)  
  
chkbtn1.pack()  
  
chkbtn2.pack()  
  
chkbtn3.pack() 
  
gui.mainloop()  

آموزش Entry

ویجت Entry برای ارائه جعبه متن تک خطی به کاربر برای پذیرفتن مقداری از کاربر استفاده می شود. برای پذیرش رشته های متنی از کاربر می توانیم از ابزارک Entry استفاده کنیم.

نکته : فقط برای یک خط از متن کاربر قابل استفاده است. برای چندین خط متن ، باید از ابزارک TEXT استفاده کنیم.

:Syntax

dokme = Entry (parent, options) 

متود ها :

1delete(first, last = none)برای حذف رشته های مشخص شده در داخل ویجت استفاده می شود.
2get()برای گرفتن ورودی از داخل ویجت استفاده می شود .
3icursor(index)برای تغییر موقعیت نشانگر درج استفاده می شود.
4index(index)این برای قرار دادن مکان نما در سمت چپ نویسه نوشته شده در فهرست مشخص شده استفاده می شود.
5insert(index,s)این برای قرار دادن رشته مشخص شده قبل از کاراکتر قرار داده شده در شاخص مشخص شده استفاده می شود.
6select_adjust(index)این شامل انتخاب نویسه موجود در فهرست مشخص شده است.
7select_clear()اگر انتخابی انجام شده باشد ، انتخاب را پاک می کند.
8select_form(index)موقعیت شاخص لنگر را به نویسه مشخص شده توسط ایندکس تنظیم می کند.
9select_present()اگر مقداری در Entry انتخاب شود در غیر این صورت false برمی گردد.
10select_range(start,end)این کاراکترها را برای انتخاب در محدوده مشخص شده انتخاب می کند.
11select_to(index)همه کاراکترها را از ابتدا تا فهرست مشخص شده انتخاب می کند.
12xview(index)برای اتصال ویجت ورودی به یک نوار پیمایشی افقی استفاده می شود.
13xview_scroll(number,what)برای ایجاد پیمایش ورودی به صورت افقی استفاده می شود.

آموزش Frame

ابزارک Python Tkinter Frame برای سازماندهی گروه ویجت ها استفاده می شود. این ویجت مانند ظرفی است که می تواند برای نگهداری ابزارکهای دیگر استفاده شود. از مناطق مستطیل شکل صفحه برای تنظیم ویجت ها به برنامه پایتون استفاده می شود.

نحو استفاده از ابزارک Frame در زیر آورده شده است.

Syntax

dokme = Frame(parent,  options)  

آموزش ListBox

ابزارک Listbox برای نمایش لیست به کاربر استفاده می شود. ما می توانیم فقط موارد متنی را در Listbox قرار دهیم.

نکته: همه موارد متنی حاوی فونت و رنگ یکسان هستند.

بسته به نوع تنظیمات ، کاربر می تواند یک یا چند مورد را از لیست انتخاب کند.

Syntax

dokme = Listbox(parent, options)

تعدادی از متود هایی که برای لیست باکس ها استفاده می شود به شرح زیر است :

1activate(index)برای انتخاب خطوط در فهرست مشخص شده استفاده می شود.
2curselection()این یک تاپل است که حاوی اعداد خط عنصر یا عناصر انتخاب شده است ، و از 0 شمارش می کند.
3delete(first, last = None)این برای حذف خطوطی که در محدوده داده شده وجود دارد استفاده می شود.
4get(first, last = None)برای بدست آوردن موارد لیست موجود در محدوده داده شده استفاده می شود.
5index(i)برای قرار دادن خط با شاخص مشخص شده در بالای ابزارک استفاده می شود.
6insert(index, *elements)این برای قرار دادن خطوط جدید،با تعداد عناصر مشخص قبل از فهرست مشخص شده استفاده می شود.
7nearest(y)این فهرست شاخص نزدیکترین خط را به مختصات y ویجت Listbox برمی گرداند.
8see(index)برای تنظیم موقعیت لیست لیست استفاده می شود تا خطوط مشخص شده توسط فهرست قابل مشاهده باشد.
9size()تعداد خطوط موجود در ابزارک Listbox را برمی گرداند.
10xview()این مورد برای ایجاد پیمایش افقی ویجت استفاده می شود.
11xview_moveto(fraction)جعبه لیست به صورت افقی قابل جابجایی با کسری از عرض طولانی ترین خط موجود در فهرست باشد.
12xview_scroll(number, what)جعبه لیست با تعداد کاراکترهای مشخص شده قابل پیمایش افقی باشد.
13yview()به Listbox اجازه می دهد تا به صورت عمودی قابل پیمایش باشد.
14yview_moveto(fraction)برای ایجاد جعبه لیست قابل استفاده است.
15yview_scroll (number, what)این مورد برای ساخت لیست به صورت عمودی با تعداد کاراکترهای مشخص شده قابل استفاده است.

آموزش Menubutton

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

Menubutton برای پیاده سازی انواع مختلف منوها در برنامه پایتون استفاده می شود. 

Syntax

men = Menubutton(Top, options)

نمونه کد برای اضافه کردن منو :

import tkinter
  
gui = Tk()  
  
gui.geometry("300x300")  
  
menubutton = Menubutton(gui, text = "Zaban ha", relief = FLAT)  
  
menubutton.grid()  
  
menubutton.menu = Menu(menubutton)  
  
menubutton["menu"]=menubutton.menu  
  
menubutton.menu.add_checkbutton(label = "Farsi", variable=IntVar())  
  
menubutton.menu.add_checkbutton(label = "English", variable = IntVar())  
  
menubutton.pack()  
  
gui.mainloop()  

آموزش Menu

از ابزارک Menu برای ایجاد انواع مختلفی از منوها (سطح بالا ، پایین کشیدن و باز شدنی) در برنامه پایتون استفاده می شود.

منوهای سطح بالا منوهایی هستند که در زیر نوار عنوان پنجره اصلی نمایش داده می شوند. ما باید یک نمونه جدید از ابزارک Menu ایجاد کنیم و دستورات مختلفی را با استفاده از روش add () به آن اضافه کنیم.به صورت مثال :

Syntax

Menu_Asli = Menu(top, options)   

متود ها :

1add_command(options)برای افزودن موارد منو به منو استفاده می شود.
2add_radiobutton(options)این روش دکمه رادیویی را به فهرست اضافه می کند.
3add_checkbutton(options)این روش برای افزودن دکمه های بررسی به منو استفاده می شود.
4add_cascade(options)برای ایجاد یک منوی سلسله مراتبی در منوی والد از طریق مرتبط کردن منوی داده شده با منوی والد استفاده می شود.
5add_seperator()برای افزودن خط جدا کننده به منو استفاده می شود.
6add(type, options)برای افزودن مورد خاص منو به فهرست استفاده می شود.
7entryconfig(index, options)این برای حذف موارد منو در محدوده مشخص شده استفاده می شود.
8entryconfig(index, options)برای پیکربندی مورد منویی که با ایندکس مشخص شده استفاده می شود.
9index(item)
برای بدست آوردن فهرست موارد منوی مشخص استفاده می شود.
10insert_seperator(index)برای قرار دادن یک جدا کننده در شاخص مشخص شده استفاده می شود.
11invoke(index)این برای فراخوانی مرتبط با انتخاب داده شده در فهرست مشخص شده استفاده می شود.
12type(index)برای بدست آوردن نوع انتخاب مشخص شده توسط شاخص استفاده می شود.

نمونه کد :

import tkinter as tk
  
top = tk.Tk()  
  
def hello():  
    print("hello!")  
  
# create a toplevel menu  
menubar = tk.Menu(top)  
menubar.add_command(label="منو", command=hello)  
menubar.add_command(label="منو دوم", command=top.quit)  
  
# display the menu  
top.config(menu=menubar)  
  
top.mainloop()

آموزش Message

ابزارک Message برای نشان دادن پیام به کاربر در مورد طول رفتار برنامه استفاده می شود.

 نکته : این ابزارک پیام های متنی را به کاربر نشان می دهد که قابل ویرایش نیست.

متن پیام حاوی بیش از یک خط است. با این حال ، پیام فقط در یک فونت نشان داده می شود.

Syntax

w = Message(parent, options)  

کد نمونه :

from tkinter import *  
  
top = Tk()  
top.geometry("100x100")  
var = StringVar()  
msg = Message( top, text = "این متن یک پیغام تست است !")  
  
msg.pack()  
top.mainloop()

آموزش Radiobutton

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

ما می توانیم متن یا تصاویر چند خط را روی دکمه های رادیویی نمایش دهیم. برای پیگیری انتخاب کاربر از دکمه رادیویی ، با یک متغیر همراه است. هر دکمه یک مقدار واحد را برای آن متغیر خاص نمایش می دهد.

Syntax

radio_bot = Radiobutton(top, options)  

متود ها :

1deselect()برای چرخاندن دکمه رادیویی استفاده می شود.
2flash()برای فلش دکمه رادیویی بین رنگ های فعال و طبیعی آن استفاده می شود.
3invoke() تغییر وضعیت دکمه رادیویی استفاده می شود.
4select()برای انتخاب دکمه رادیویی استفاده می شود.

نمونه کد :

from tkinter import *
  
top = Tk()  
top.geometry("300x150")  
radio = IntVar()  
lbl = Label(text = "این یک دکمه تست است :")  
lbl.pack()  
R1 = Radiobutton(top, text="پایتون", variable=radio, value=1)  
R1.pack( anchor = W )  
  
R2 = Radiobutton(top, text="پایتونی ها", variable=radio, value=2)  
R2.pack( anchor = W )  
  
R3 = Radiobutton(top, text="برنامه نویسی گرافیکی", variable=radio, value=3)  
R3.pack( anchor = W)  
  
label = Label(top)  
label.pack()  
top.mainloop()  

آموزش Scale

از ابزارک Scale برای پیاده سازی نوار متغیر گرافیکی در برنامه پایتون استفاده می شود تا کاربر بتواند در محدوده مقادیر نشان داده شده روی کشو اسلایدری کلیک کرده و یکی از آن واحد ها را انتخاب کند.

ما می توانیم مقادیر حداقل و حداکثر را به همراه وضوح مقیاس کنترل کنیم. وقتی کاربر مجبور شود فقط یک مقدار را از محدوده داده شده انتخاب کند ، یک گزینه جایگزین برای ویجت Entry فراهم می آیند .

Syntax

Scall = Scale(top, options)   

متود ها :

1get()برای بدست آوردن مقدار فعلی مقیاس استفاده می شود.
2set(value)برای تنظیم مقدار مقیاس استفاده می شود.

نمونه کد :

from tkinter import *  

top = Tk()  
top.geometry("200x100")  
v = DoubleVar()  
scale = Scale( top, variable = v, from_ = 1, to = 50, orient = HORIZONTAL)  
scale.pack(anchor=CENTER)  
  
btn = Button(top, text="ثبت")  
btn.pack(anchor=CENTER)  
  
label = Label(top)  
label.pack()  
  
top.mainloop()  

آموزش Scrollbar

ابزارک scrollbar برای پیمایش به پایین محتوای ابزارک های دیگر مانند فهرست ، متن و غیره استفاده می شود. با این حال ، ما همچنین می توانیم نوارهای پیمایشی افقی را به ابزارک Entry ایجاد کنیم.

syntax

dokme = Scrollbar(top, options)   

متود ها

1get()دو عدد a و b را نشان می دهد که موقعیت فعلی اسکرول را نشان می دهد.
2set(first, last)برای اتصال نوار پیمایشی به ویجت دیگر استفاده می شود. 
yscrollcommand یا xscrollcommand ویجت دیگر برای این روش.

نمونه کد:

from tkinter import *  
  
top = Tk()  
sb = Scrollbar(top)  
sb.pack(side = RIGHT, fill = Y)  
  
mylist = Listbox(top, yscrollcommand = sb.set )  
  
for line in range(30):  
    mylist.insert(END, "Number " + str(line))  
  
mylist.pack( side = LEFT )  
sb.config( command = mylist.yview )  
  
mainloop() 

آموزش TEXT

این ویجت برای نمایش داده های متنی در برنامه Python استفاده می شود. با این حال ، Tkinter ویجت Entry را برای استفاده در جعبه متن تک خط به ما ارائه می دهد.

برای نمایش متن قالب بندی شده چند خطی با سبک ها و ویژگی های مختلف استفاده می شود. ابزارک Text بیشتر برای ارائه ویرایشگر متن به کاربر استفاده می شود.

همچنین به ما کمک می کند تا از علائم و زبانه ها برای یافتن بخشهای خاص متن استفاده کنیم. همچنین می توانیم از پنجره ها و تصاویر همراه با متن استفاده کنیم زیرا می تواند برای نمایش متن قالب بندی شده نیز استفاده شود.

Syntax

widget = Text(top, options)  

متود ها :

1delete(startindex, endindex)این روش برای حذف نوشته های محدوده مشخص شده استفاده می شود.
2get(startindex, endindex)این کاراکترها را در محدوده مشخص شده برمی گرداند.
3index(index)برای بدست آوردن شاخص مطلق شاخص مشخص شده استفاده می شود.
4insert(index, string)این برای قرار دادن رشته مشخص شده در فهرست داده شده استفاده می شود.
5see(index)بسته به اینکه متن در فهرست مشخص شده قابل مشاهده است یا خیر ، مقدار بولی را درست یا نادرست برمی گرداند.

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

from tkinter import *  
  
top = Tk()  
text = Text(top)  
text.insert(INSERT, "Name.....")  
text.insert(END, "Salary.....")  
  
text.pack()  
  
text.tag_add("Write Here", "1.0", "1.4")  
text.tag_add("Click Here", "1.8", "1.13")  
  
text.tag_config("Write Here", background="yellow", foreground="black")  
text.tag_config("Click Here", background="black", foreground="white")  
  
top.mainloop()  

آموزش TopLevel

از ابزارک Toplevel برای ایجاد و نمایش پنجره های سطح کامل که مستقیماً توسط مدیر پنجره مدیریت می شوند استفاده می شود. ویجت toplevel ممکن است در بالای آن پنجره اصلی یا همان Main داشته باشد یا ندارد.

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

پنجره های با سطح کامل دارای نوارهای عنوان ، حاشیه ها و سایر تزئینات پنجره هستند.

Syntax

popup = Toplevel(options)

متود ها :

1deiconify()این روش برای نمایش پنجره استفاده می شود.
2frame()برای نشان دادن شناسه پنجره وابسته به سیستم استفاده می شود.
3group(window)برای افزودن این پنجره به گروه پنجره مشخص شده استفاده می شود.
4iconify()برای تبدیل پنجره toplevel به یک نماد استفاده می شود.
5protocol(name, function)برای ذکر تابعی استفاده می شود که برای پروتکل خاص فراخوانی می شود.
6state()برای بدست آوردن وضعیت فعلی پنجره استفاده می شود. 
مقادیر احتمالی طبیعی ، نمادین ، ​​برداشت شده و نمادی هستند.
7transient([master])برای تبدیل این پنجره به یک پنجره گذرا (موقتی) استفاده می شود.
8withdraw()برای پاک کردن پنجره استفاده می شود اما آن را از بین نمی برد.
9maxsize(width, height)برای اعلام حداکثر اندازه برای پنجره استفاده می شود.
10minsize(width, height)برای اعلام حداقل اندازه برای پنجره استفاده می شود.
11positionfrom(who)برای کنترل قابلیت تغییر اندازه پنجره یا نه استفاده می شود.
12resizable(width, height)برای کنترل قابلیت تغییر اندازه پنجره یا نه استفاده می شود.
13sizefrom(who)برای تعریف کنترل کننده اندازه استفاده می شود.
14title(string)برای تعریف عنوان برای پنجره استفاده می شود.

نمونه کد :

from tkinter import *  
  
root = Tk()  
  
root.geometry("200x200")  
  
def open():  
    top = Toplevel(root)  
    top.mainloop()  
  
btn = Button(root, text = "open", command = open)  
  
btn.place(x=75,y=50)  
  
root.mainloop()  

آموزش Spinbox

ابزارک Spinbox جایگزینی مناسب برای ابزارک Entry است. دامنه ای از مقادیر را در اختیار کاربر قرار می دهد که کاربر می تواند یکی از آن ها را انتخاب کند.

این در مواردی استفاده می شود که تعدادی از مقادیر ثابت برای انتخاب به کاربر داده شود.

برای تزئین ابزارک می توانیم از گزینه های مختلفی با Spinbox استفاده کنیم. نحو استفاده از Spinbox در زیر آورده شده است.

Syntax

snip = Spinbox(top, options)   

متود ها:

1delete(startindex, endindex)این روش برای حذف نویسه های موجود در محدوده مشخص شده استفاده می شود.
2get(startindex, endindex)این برای به کار بردن نویسه ها در محدوده مشخص شده استفاده می شود.
3identify(x, y)برای شناسایی عنصر ویجت در محدوده مشخص شده استفاده می شود.
4index(index)برای بدست آوردن مقدار مطلق شاخص داده شده استفاده می شود.
5insert(index, string)این روش برای قرار دادن رشته در فهرست مشخص شده استفاده می شود.
6invoke(element)برای فراخوانی پاسخ تماس با ویجت استفاده می شود.

نمونه کد :

from tkinter import *  
  
top = Tk()  
  
top.geometry("200x200")  
  
spin = Spinbox(top, from_= 0, to = 25)  
  
spin.pack()  
  
top.mainloop()  

آموزش PanedWindow

PanedWindowیک ویجت کانتینری است که ممکن است حاوی هر تعداد از صفحات، مرتب به صورت افقی یا عمودی باشد. هر پنجره حاوی یک ویجت است و هر جفت پانمی توسط یک حرکت (از طریق حرکت موس) محصور می شود.

Syntax

w= PanedWindow(master, options)

متود ها :

1add(child, options)برای افزودن یک پنجره به پنجره اصلی استفاده می شود.
2get(startindex, endindex)این روش برای ارائه متن در محدوده مشخص شده استفاده می شود.
3config(options)برای پیکربندی ویجت با گزینه های مشخص شده استفاده می شود.
from tkinter import *  
  
def add():  
    a = int(e1.get())  
    b = int(e2.get())  
    leftdata = str(a+b)  
    left.insert(1,leftdata)  
  
w1 = PanedWindow()  
w1.pack(fill = BOTH, expand = 1)  
  
left = Entry(w1, bd = 5)  
w1.add(left)  
  
w2 = PanedWindow(w1, orient = VERTICAL)  
w1.add(w2)  
  
e1 = Entry(w2)  
e2 = Entry(w2)  
  
w2.add(e1)  
w2.add(e2)  
  
bottom = Button(w2, text = "Add", command = add)  
w2.add(bottom)  
  
mainloop()  
خروجی

آموزش LabelFrame

از ابزارک LabelFrame برای ترسیم حاشیه در اطراف ابزارک های کوچک استفاده می شود. همچنین می توانیم عنوان را برای ابزارک LabelFrame نمایش دهیم. این مانند یک مکانی عمل می کند که می تواند تمام ویجت ها در دل خود جای دهد .

ُSyntax

frame1 = LabelFrame(top, options)   

نمونه کد مناسب :

from tkinter import *  
  
top = Tk()  
top.geometry("300x200")  
  
labelframe1 = LabelFrame(top, text="Positive Comments")  
labelframe1.pack(fill="both", expand="yes")  
  
toplabel = Label(labelframe1, text="Place to put the positive comments")  
toplabel.pack()  
  
labelframe2 = LabelFrame(top, text = "Negative Comments")  
labelframe2.pack(fill="both", expand = "yes")  
  
bottomlabel = Label(labelframe2,text = "Place to put the negative comments")  
bottomlabel.pack()  
  
top.mainloop()  

آموزش MessageBox

ماژول جعبه پیام برای نمایش های پیام در برنامه های پایتون استفاده می شود. توابع مختلفی وجود دارد که بسته به نیاز برنامه برای نمایش پیام های مربوطه استفاده می شود.

تمامی شما دوستان در طول مدت که با سیستم عامل ها کار کرده اید حتما به ارور های مختلف برخودر کرده اید این ارور ها شکل و رنگ وبی خاص خود ویندوز را دارند .مثال هایی از این ارور ها در زیر همراه با شکل براتون اورده ایم.

Syntax

error = messagebox.function_name(title, message [, options])  

1.showinfo()

from tkinter import *  
  
from tkinter import messagebox  
  
top = Tk()  
  
top.geometry("100x100")      
  
messagebox.showinfo("information","Information")  
  
top.mainloop()  
خروجی

2.showwarning()

from tkinter import *  
  
from tkinter import messagebox  
  
top = Tk()  
top.geometry("100x100")  
messagebox.showwarning("warning","Warning")  
  
top.mainloop()  

3.showerror()

from tkinter import *  
from tkinter import messagebox  
  
top = Tk()  
top.geometry("100x100")  
messagebox.showerror("error","Error")  
top.mainloop()
خروجی

4.askquestion()

from tkinter import *  
from tkinter import messagebox  
  
top = Tk()  
top.geometry("100x100")  
messagebox.askquestion("Confirm","Are you sure?")  
top.mainloop()  
خروجی

5.askokcancel()

from tkinter import *  
from tkinter import messagebox  
  
top = Tk()  
top.geometry("100x100")  
messagebox.askokcancel("Redirect","Redirecting you to www.pythoniha.ir")  
top.mainloop()  
خروجی

6. askyesno()

from tkinter import *  
from tkinter import messagebox  
  
top = Tk()  
top.geometry("100x100")  
messagebox.askyesno("Application","Got It?")  
top.mainloop() 
خروجی

7. askretrycancel()

from tkinter import *  
from tkinter import messagebox  
  
top = Tk()  
top.geometry("100x100")  
messagebox.askretrycancel("Application","try again?")  
  
top.mainloop()  
خروجی

آموزش IMAGE

برای وارد کردن تصاویر در این کتابخانه می توانید از 2 متود زیر استفاده کنید :

  • BitmapImage برای عکس هایی با فرمت XBM
  • PhotoImage بررای عکس هایی با فرمت PGM, PPM, GIF and PNG

نحوه استفاده صحیح از کد :

ax = tk.PhotoImage(file='آدرس عکس مورد نظر ')

آبان ۶, ۱۳۹۹

۱۳ پاسخ به "آموزش رابط گرافیکی پایتون : Tkinter"

  1. If you want to use the photo it would also be good to check with the artist beforehand in case it is subject to copyright. Best wishes. Aaren Reggis Sela

  2. Pretty useful resources you have mentioned, a big heads up for submitting. Fianna Buddy Elyn

  3. Marvelous, what a website it is! This weblog presents useful facts to us, keep it up. Molli Jorgan Danieu

  4. Appreciate it for helping out, excellent information. Camile Nicolas Craw

  5. Superb, what a blog it is! This weblog presents helpful information to us, keep it up. Rowena Rickard Asha

  6. You made some nice points there. I looked on the internet for the subject matter and found most individuals will agree with your site.

  7. Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  8. Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  9. Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  10. You made some nice points there. I looked on the internet for the subject matter and found most individuals will agree with your site.

  11. Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  12. Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  13. Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

ارسال یک پیام

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

X