亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

懸停在其上時如何打開與 ttk.Menubutton 相關的菜單?

懸停在其上時如何打開與 ttk.Menubutton 相關的菜單?

人到中年有點甜 2022-10-18 16:58:25
我想在 中做一個自定義菜單欄Tkinter,但由于無法調整,我不得不制作拐杖。Frame我從和Button制作了一個自定義菜單Menubutton。但我遇到了一個小問題 - 懸停時無法打開菜單ttk.Menubutton。也就是說,我需要將鼠標懸停在 Menubutton 上時,附加到該按鈕的菜單會打開(模擬單擊Menubutton)。如何實施?代碼import tkinter as tkfrom tkinter import ttkroot = tk.Tk()root.option_add("*Menu.borderWidth", "0")root.option_add("*Menu.activeBorderWidth", "0")root.option_add("*Menu.background", "black")style = ttk.Style(root)fr = ttk.Frame(root)btn_menu = ttk.Menubutton(fr, text='fegvd')btn_menu.grid(row=0, column=0)btn =ttk.Button(fr, text='grfbvgfev')btn.grid(row=0, column=1)btn_menu_st = ttk.Menubutton(fr, text='Gds')btn_menu_st.grid(row=0, column=2)fr.pack(fill='x')file = tk.Menu(btn_menu, tearoff=0, foreground='white')file.add_command(label='ГЫГ')style = tk.Menu(btn_menu_st, tearoff=0, foreground='white')style.add_command(label='Ugu')btn_menu.configure(menu=file)btn_menu_st.configure(menu=style)root.mainloop()
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

也許有更好的想法來實現它。我的想法是發送鼠標事件。


import tkinter as tk

from tkinter import ttk


root = tk.Tk()


root.option_add("*Menu.borderWidth", "0")

root.option_add("*Menu.activeBorderWidth", "0")

root.option_add("*Menu.background", "black")



style = ttk.Style(root)


fr = ttk.Frame(root)


btn_menu = ttk.Menubutton(fr, text='fegvd')

btn_menu.grid(row=0, column=0)


def func1(e):

    e.widget.event_generate("<Button-1>") # send a mouse press event


btn_menu.bind("<Enter>",func1) # when your mouse enter this widget

btn =ttk.Button(fr, text='grfbvgfev')

btn.grid(row=0, column=1)


btn_menu_st = ttk.Menubutton(fr, text='Gds')

btn_menu_st.grid(row=0, column=2)


fr.pack(fill='x')



file = tk.Menu(btn_menu, tearoff=0, foreground='white')

file.add_command(label='ГЫГ')


style = tk.Menu(btn_menu_st, tearoff=0, foreground='white')

style.add_command(label='Ugu')


btn_menu.configure(menu=file)

btn_menu_st.configure(menu=style)



root.mainloop()

我發現.post可以做一個很好的方法。


import tkinter as tk

from tkinter import ttk


root = tk.Tk()


root.option_add("*Menu.borderWidth", "0")

root.option_add("*Menu.activeBorderWidth", "0")

root.option_add("*Menu.background", "black")



style = ttk.Style(root)


fr = ttk.Frame(root)


btn_menu = ttk.Menubutton(fr, text='fegvd')

btn_menu.grid(row=0, column=0)

def func1(e):

    file.post(e.widget.winfo_rootx(),e.widget.winfo_rooty()+e.widget.winfo_height())


btn_menu.bind("<Enter>",func1)

btn =ttk.Button(fr, text='grfbvgfev')

btn.grid(row=0, column=1)


btn_menu_st = ttk.Menubutton(fr, text='Gds')

btn_menu_st.grid(row=0, column=2)


fr.pack(fill='x')



file = tk.Menu(btn_menu, tearoff=0, foreground='white')

file.add_command(label='ГЫГ')


style = tk.Menu(btn_menu_st, tearoff=0, foreground='white')

style.add_command(label='Ugu')


btn_menu.configure(menu=file)

btn_menu_st.configure(menu=style)


root.mainloop()

.unpost不能在我的電腦上工作,我發現了這個問題


查看完整回答
反對 回復 2022-10-18
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號