جدید آموزش ایجاد رابط گرافیکی کاربر (GUI) در پایتون به وسیله Tkinter قسمت 12 – Checkbutton
ظاهر ویجت Checkbutton که ممکن است آن را به نام چک باکس Checkbox هم بشناسید، به شکل زیر است.
در شکل بالا دو عدد از این ویجت دیده می شود. می توان تعدادی checkbutton در یک صفحه قرار داد تا کاربر هر کدام را که می خواهد با کلیک کردن روی آن انتخاب کند یا از انتخاب بیرون بیاورد. همچنین به طور هم زمان می تواند چندین مورد را انتخاب کند.
برای آشنایی با عملکرد و چگونگی استفاده از آن برنامه زیر را نوشته ایم که با اجرای آن، کاربر می تواند دو گزینه را انتخاب کند یا از انتخاب خارج کند. با هر بار کلیک کردن روی یکی از این آیتمها متن لیبلها متناظر با حالت انتخاب آیتمها تغییر می کند.
import tkinter as tk root = tk.Tk() root.geometry('300x150') root.resizable(False, False) root.title('Checkbutton karakit') def choice(): if intChoice1.get()==1: lbl1.configure(text="Item 1 is selected.") else: lbl1.configure(text="Item 1 is NOT selected.") if intChoice2.get()==1: lbl2.configure(text="Item 2 is selected.") else: lbl2.configure(text="Item 2 is NOT selected.") lblSelect = tk.Label(text="Please select an item: ") lblSelect.place(height=20,width=150,x=40,y=20) intChoice1 = tk.IntVar() intChoice2 = tk.IntVar() chkChoice1 = tk.Checkbutton(root, text="Item 1" , variable=intChoice1, command=choice) chkChoice1.place(height=20,width=100,x=40,y=50) chkChoice2 = tk.Checkbutton(root, text="Item 2" , variable=intChoice2, command=choice) chkChoice2.place(height=20,width=100,x=40,y=80) lbl1 = tk.Label(text="Item 1 is NOT selected. ",relief="groove") lbl1.place(height=20,width=130,x=140,y=50) lbl2 = tk.Label(text="Item 2 is NOT selected. ",relief="groove") lbl2.place(height=20,width=130,x=140,y=80) root.mainloop()
توضیح برنامه
بعد از احضار کتابخانه و ایجاد پنجره اصلی ، یک تابع به نام choice تعریف کرده ایم که وظیفه آن بررسی وضعیت چک باتن ها و نمایش پیغام مناسب در لیبل هاست. در خط 15 و 16 یک لیبل ایجاد شده که قرار است یک پیغام ثابت را هنگام اجرای برنامه نمایش دهد.
در خط 17 و 18 دو متغیر مخصوص tkinter از نوع IntVar تعریف کرده ایم که قرار است وضعیت چک باتن ها در آنها ذخیره شود.
در خط 19 یک ویجت checkbutton با نام chkChoice1 ایجاد نموده ایم و متن آن را Item 1 تعیین کرده ایم. متغیر مرتبط با آن intChoice1 است که در خط 17 تعریف شد. و تابعی که با تغییر وضعیت این ویجت فراخوانی و اجرا می شود choice است که در خطوط 6 تا 14 تعریف شده است.
در خط 20 مکان و ابعاد chkChoice1 مشخص شده است.
یک ویجت دیگر با روشی مشابه با نام chkChoice2 در خطوط 21 و 22 تعریف و جانمایی می کنیم. متغیر مرتبط با آن inChoice 2 است اما با تغییر وضعیت این ویجت همان تابع choice اجرا خواهد شد.
در واقع تابع choice موقع اجرا شدن بررسی می کند که مقدار متغیر intChoice1 و intChoice2 1 است یا خیر و اگر 1 بود متوجه می شود که ویجت مربوط به آن انتخاب شده است و پیغام مناسب را در لیبل مقابل آن نمایش می دهد. اما اگر مقدار این متغیرها 1 نباشد برنامه متوجه می شود که این ویجت در حالت انتخاب قرار ندارد و پیغام متناسب را در مقابل آن نمایش می دهد.
در خطوط 23 تا 26 لیبل هایی که روبه روی چک باتن ها قرار می گیرند تعریف و متن پیش فرض آنها مشخص شده است و در آخرین خط حلقه اصلی برنامه مشاهده می شود.
بعد از اجرای برنامه پنجره زیر نمایش داده می شود:
همان طور که می بینید در حالت پیش فرض هیچ کدام از آیتمها انتخاب نشده اند. اما به محض انتخاب هر یک از آنها توسط کاربر پیغام متناسب در لیبل مقابل آن نمایش داده می شود:
در صورتی که بخواهیم یکی از چک باتن ها هنگام شروع اجرای برنامه در وضعیت انتخاب شده قرار داشته باشد کافی است متغیر مربوط به آن را با دستور زیر برابر 1 قرار دهیم:
intChoice1.set(1)
آموزشهای ابزار طراحی GUI در پایتون: tkinter
- کار با فایلها در پایتون tkinter
- کار با menubutton در پایتون tkinter
- کار با ویجت text در پایتون tkinter
- کار با منوها در پایتون tkinter
- کار با Radiobutton در پایتون tkinter
- کار با checkbutton در پایتون tkinter
- کار با scale یا اسلایدر در پایتون tkinter
- کار با spinbox در پایتون tkinter
- کار با combobox در پایتون tkinter
- کار با message box در پایتون tkinter
- کار با canvas در پایتون tkinter
- کار با listbox در پایتون tkinter
- کار با متغیرها در پایتون tkinter
- کار با Entry در پایتون tkinter
- کار با دکمه در پایتون tkinter
- کار با لیبل یا برچسب درپایتون tkinter
- آشنایی اولیه با tkinter ابزار استاندارد طراحی GUI در پایتون