我知道该组件有鼠标左击事件语句
Combobox1.bind("<<ComboboxSelected>>", func)
我想知道该组件是否只有这么一个鼠标左击事件可绑定?
根据我这几天的搜索信息来看似乎确实只有这一个事件。
我已经实现的功能是:
1. 可以在combobox框上绑定鼠标右击事件
2. 点击下拉框内选项可调用给定方法
示例代码如下:
from tkinter import *
import tkinter.ttk
root = Tk()
root.geometry('500x200')
def LamMatDelete_m(event):
menubar = Menu(root, tearoff=False)
menubar.add_command(label='modify')
menubar.add_command(label='delete')
menubar.post(event.x_root, event.y_root)
def LamMatChoose_m(event):
new = Toplevel()
new.geometry('300x200')
Button(new,text='点击无效').grid(row=0, column=0, sticky=W, pady=4.5, padx=5)
comvallist1_m = ['Choose...', '(Customized...)']
Combobox1_m = tkinter.ttk.Combobox(root, text='Choose...', width=45)
Combobox1_m.grid(row=0, column=0, sticky=W, pady=4.5, padx=5)
Combobox1_m['value'] = comvallist1_m
Combobox1_m["state"] = "readonly"
Combobox1_m.current(0)
Combobox1_m.bind("<<ComboboxSelected>>", LamMatChoose_m)
Combobox1_m.bind("<Button-3>", LamMatDelete_m)
root.mainloop()
运行结果:(仅在combobox组件框上右击鼠标才会出现事件)
而我想实现的功能是:在下拉框呈现的选项上右击出现menubar,实现例如“删除选项”这样的功能:
我看到很多人的建议是自己继承父类来重写combobox组件,添加自己想要的功能,但是我看了半天ttk的代码不知道该怎么下手。我想在源代码内找到"<<ComboboxSelected>>"这个关键词来看左击事件是如何绑定的,但我没有找到。
求知道的大佬们顺手给个回答呗。