استفاده از ویجت منو

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 26, 2020

ویجت منو Tkinter ویجت منو برای پیاده سازی منوهای topple، dropdown و popup استفاده می شود. هنگام استفاده از ویجت منو این ویجت برای نمایش انواع منوهای مورد استفاده توسط یک برنامه کاربردی استفاده می شود. از آنجا که این ویجت در صورت امکان از کد محلی استفاده می کند، نباید سعی کنید منوها را با استفاده از دکمه ها و سایر ابزارک های Tkinter امتحان کنید. الگو ها منوهای سطح بالا فقط در زیر نوار عنوان ریشه و یا هر پنجره دیگر به بالا (یا در مکینتاش، در کنار لبه بالایی صفحه) نمایش داده می شود. برای ایجاد یک منوی پیشرفته، یک نمونه از منو جدید ایجاد کنید و از متد add برای افزودن دستورات و سایر نوشته های منو به آن استفاده کنید. مثال زیر نحوه ایجاد یک منو را به شما نشان می دهد:


 
#importing libraries
from tkinter import *

# building a window
window = Tk()

#adding window title
window.title("icc-aria gui app")

#function for hello command
def hello():
    print ("hello!")

# create a toplevel menu
menubar = Menu(window )
menubar.add_command(label="Hello!", command=hello)
menubar.add_command(label="Quit!", command=window.quit)

# display the menu
window .config(menu=menubar)

#creating the loop for the program
window.mainloop()

 

نمونه خروجی:

منوهای Pulldown (و سایر زیر منوها) به همان شکل ایجاد می شوند. تفاوت اصلی این است که آنها به جای یک پنجره تکمیل شده به یک منوی والدین (با استفاده از add_cascade) متصل می شوند. نمونه کد زیر نحوه ساخت زیر منو را در رابط گرافیکی tkinter به شما نشان خواهد داد. مثال:  


 
#importing libraries
from tkinter import *

# building a window
window = Tk()

#adding window title
window.title("icc-aria gui app")

#function for open command
def openfile():
    print ("open file function activated")

#function for save command
def savefile():
    print ("save file function activated")
        
# create a toplevel menu
menubar = Menu(window)

# create a pulldown menu, and add it to the menu bar
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=openfile)
filemenu.add_command(label="Save", command=savefile)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=window.quit)
menubar.add_cascade(label="File", menu=filemenu)

# create more pulldown menus
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Cut")
editmenu.add_command(label="Copy")
editmenu.add_command(label="Paste")
menubar.add_cascade(label="Edit", menu=editmenu)

helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="About")
menubar.add_cascade(label="Help", menu=helpmenu)

# display the menu
window .config(menu=menubar)

#creating the loop for the program
window.mainloop()

نمونه خروجی:

 

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
6دیدگاه
  • Tahpro Grammer
    2 years, 3 months ago

    from tkinter import *

    def btn_pushed():
    اینجا اون سورس کد تبدیل گفتار به متنی که خودم نوشتم قرار میگیره
    print(text)

    window = Tk()
    window.title("تبديل گفتار به متن فارسي")
    window.minsize(500,400)
    window.maxsize(649,450)
    Label(window,text=" برای استفاده از این برنامه میتوانید روی(شروع کنید)کلیک کنید و حرف خود را بزنید",foreground="red",font="Tahoma").pack()
    Button(window,text="شروع کنید",command=btn_pushed).pack()
    window.mainloop()

    سلام مهندس بیگدلی .. اینجا میخام وقتی زد رو باتون اون گفتاری که گفته اونجا پایین باتون قرار بگیره
    . اون print(text) مربوط به اون سورس کد هست . و چطور اون print(text) بریزم تو باتون و اون رو فراخوانی کنم تا اونجا نمایش داده بشه . مهندس ممنون میشم این رو به من بگید .تشکر

    • علی بیگدلی
      2 years, 3 months ago

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

    • Tahpro Grammer
      2 years, 3 months ago

      سلام مهندس من ایدی تلگرام شما رو ندارم ممنون میشم لطف کنید بدید

    • علی بیگدلی
      2 years, 3 months ago

      @icc_aria_admin

  • Tahpro Grammer
    2 years, 3 months ago

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

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

    • علی بیگدلی
      2 years, 3 months ago

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