Button
عنصر Button برای قرار دادن دکمهها در یک برنامه پایتون استفاده میشود. دکمهها میتوانند متن یا عکس را به نمایش بگذارند. شما میتوانید یک تابع را به یک دکمه متصل کنید، به صورتی که هنگام کلیک کردن دکمه، این تابع به صورت خودکار فراخوانی شود. نحوه تعریف کردن عنصر دکمه به صورت زیر است:
Button (master, option=value, ...)
master، بیانگر پنجره والدی است که این دکمه به آن تعلق خواهد داشت و Options، تنظیمات پرکاربرد برای دکمه میباشند که میتوانند به صورت زوجهای کلید/مقدار که با ویرگول از هم جدا میشوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:
تنظیمات | شرح |
activebackground | رنگ پس زمینه زمانی که نشانگر ماوس بر روی دکمه قرار میگیرد، را مشخص میکند. |
activeforeground | رنگ متن، زمانی که نشانگر ماوس بر روی دکمه قرار میگیرد، را مشخص میکند. |
bd | پهنای خط حاشیه (border) دکمه را مشخص میکند و مقدار پیش فرض آن 2 است. |
bg | رنگ پس زمینه در حالت عادی، را مشخص میکند. |
command | تابعی که هنگام کلیک کردن دکمه، باید فراخوانی شود. |
fg | رنگ پیش زمینه (متن) در حالت عادی، را مشخص میکند. |
font | فونت متن استفاده شده برای دکمه را مشخص میکند. |
height | ارتفاع دکمه، به صورت تعداد خطوط برای دکمههای متنی یا به صورت پیکسل برای دکمههای با تصویر، را مشخص میکند. |
highlightcolor | رنگ فوکوس زمانی که فوکوس به عنصر منتقل میشود. |
image | تصویری که بر روی دکمه به جای متن نمایش داده میشود. |
justify | نحوه نمایش متن چند خطی:
|
padx | فاصله کناری از سمت چپ و راست متن، را مشخص میکند. |
pady | فاصله کناری از بالا و پایین متن، را مشخص میکند. |
relif | نوع لبه کناری را مشخص میکند. این خاصیت دارای مقادیر SUNKEN ،RAISED ،GROOVE و RIDGE است. |
state | قرار دادن مقدار DISABLED منجر به خاکستری شدن دکمه و غیر فعال شدن عملکرد آن میشود. این تنظیم در حالتی که ماوس بر روی دکمه قرار داشته باشد، مقدار ACTIVE خواهد داشت. مقدار پیش فرض NORMAL است. |
underline | مقدار پیش فرض 1- است. به معنی اینکه هیچ یک از حروف زیر خط نداشته باشند. مقادیر غیر منفی به معنی آن است که حرف مورد نظر در متن دارای زیرخط باشد. |
width | عرض دکمه، به صورت تعداد حروف برای نمایش متنی یا به صورت پیکسل برای نمایش تصویر، را مشخص میکند. |
wraplength | اگر مقدار مثبتی به آن انتساب یابد، خطوط به گونهای شکسته میشوند تا در هر خط به این مقدار جا اشغال کنند. |
توابع پر کاربرد برای این عنصر به شرح زیر است :
تابع | شرح |
flash | باعث میشود رنگ دکمه چندین بار به حالت فعال و عادی تغییر کند. سپس رنگ آن به حالت اولیه خود بر میگردد. در حالتی که دکمه غیرفعال است، نادیده گرفته میشود. |
invoke | تابع دکمه (تابعی که در دستور command تنظیم شده است) را فراخوانی کرده و مقدار بازگشتی آن نیز بر میگرداند. اگر تابعی برای دکمه تغریف نشده باشد و یا دکمه غیرفعال باشد، این تابع نادیده گرفته میشود. |
میخواهیم برنامهای بنویسیم که وقتی نشانگر ماوس بر روی دکمه قرار گرفت یک پیغام و وقتی از آن خارج شد، پیغام دیگر در داخل دکمه نمایش داده شود. به کد زیر توجه کنید:
1: import tkinter 2: from tkinter import Button 3: 4: window = tkinter.Tk() 5: window.geometry('200x200') 6: 7: button = Button(window, text='Hover Me!', width="20", height="3", bd='3') 8: button.place(x='25', y='60') 9: 10: def enter(event): 11: button.config(text='Mouse has entered!') 12: 13: def leave(event): 14: button.config(text='Mouse has left!') 15: 16: button.bind('<Enter>', enter) 17: button.bind('<Leave>', leave) 18: 19: button.mainloop() 20: window.mainloop()
در باره خطوط 5-1 قبلاً توضیح دادهایم. در خط 7 یک دکمه ایجاد کرده و خاصیتهای آن، از جمله عرض، ارتفاع، متن و ضخامت خط کناری آن را مقداردهی میکنیم. در خط 8 نیز با استفاده از تابع ()place مشخص میکنیم که دکمه در کجای پنجره اصلی قرار بگیرد. در خطوط 14-10 دو تابع ()enter و ()leave تعریف کردهایم که به ترتیب هنگام وارد شدن نشانگر ماوس به دکمه و خارج شدن از آن فراخوانی و فعال میشوند. این دو تابع را با استفاده از تابع ()bind به ترتیب به رویدادهای Enter و Leave متصل میکنیم (خطوط 16 و 17).حال برنامه را اجرا کنید. مشاهده میکنید که با قرار گرفتن نشانگر ماوس بر روی کنترل button خاصیت text آن تغییر میکند. و از طرف دیگر وقتی که نشانگر از کنترل دکمه دور میشود این خاصیت دوباره تغییر میکند:
چگونه فاصله بیت دو دوکمه زو حذف کنیم