جدید آموزش ایجاد رابط گرافیکی کاربر (GUI) در پایتون به وسیله Tkinter قسمت 16 – Menubutton
یکی از ویجتهای به درد بخور در tkinter ویجت menubutton است. این ویجت شبیه به یک منو هست اما لازم نیست در بالای پنجره و مثل منوهای دیگر قرار بگیرد. بلکه در هر جای پنجره می توان آن را قرار داد. در زیر برنامه ای را می بینید که با اجرای آن کاربر می تواند از menubutton یک گزینه را انتخاب کند و پیغام مرتبط با آن گزینه در یک لیبل نمایش داده شود:
import tkinter as tk from tkinter import * root = tk.Tk() root.geometry('300x150') root.resizable(False, False) root.title('Button Menu karakit') def analog(): lbl.configure(text='Analog Circuits') def digital(): lbl.configure(text='Digital Circuits') mbtn = Menubutton(root, text="category", relief="groove") mbtn.place(height=30,width=100,x=30,y=30) mbtn.menu=Menu(mbtn) mbtn["menu"]=mbtn.menu mbtn.menu.add_command ( label="Analog", command=analog ) mbtn.menu.add_command ( label="Digital", command=digital ) lbl=Label(root, relief="groove") lbl.place(height=30,width=100,x=170,y=30) root.mainloop()
با اجرای برنامه پنجره به این شکل نمایش داده می شود:
با کلیک روی دکمه منوی category دو گزینه به شکل زیر ظاهر می شود:
با انتخاب هر یک از دو گزینه متن مربوط به آن گزینه در لیبل نمایش داده می شود:
توضیح برنامه
خطوط 1 تا 6 مربوط به احضار کتابخانه های مورد نیاز و ایجاد پنجره اصلی به نام root هستند.
در خط 7 تا 10 دو تابع به نامهای analog و digital تعریف کرده ایم که که در صورت فراخوانی یک متن را داخل لیبل نمایش می دهند.
در خط 11 یک ویجت menubutton با نام mbtn ایجاد می کنیم و در خط بعد ابعاد و مکان آن را مشخص می نماییم.
در خط 13 یک منو درست می کنیم و در خط 14 آن را به دکمه منو اختصاص می دهیم.
در خط 15 یک گزینه به منو اضافه می کنیم با عنوان آناللوگ که با استفاده از command مشخص کرده ایم که با کلیک روی این گزینه تابع analog فراخوانی می شود و متن مربوط به آن در لیبل نمایش داده می شود.
همین کار را در خط 16 برای گزینه digital انجام می دهیم.
سپس در خط 17 و 18 لیبل را ایجاد و جانمایی می کنیم و در پایان حلقه اصلی برنامه اضافه شده است.
نکته ای که شاید متوجه آن شده باشید خطچین بالای گزینه های داخل منو است.
اگر کاربر روی این خط چین کلیک کند یک کپی از MENUBUTTON به صورت شناور نمایش داده می شود و کاربر می تواند آن را به هر جای صفحه جا به جا کند.
اگر نخواهیم چنین قابلیتی وجود داشته باشد باید خط 13 را به این صورت تغییر دهیم:
Mbtn.menu=Menu(mbtn, tearoff=0)
با اختصاص مقدار 0 به پارامتر tearoff خط چین دیگر مشاهده نمی شود و کاربر نمی تواند دکمه منو را جابه جا کند.
آموزشهای ابزار طراحی 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 در پایتون