繁体   English   中英

如何创建与 tkinter 中的列表框链接的弹出菜单?

[英]how to create a pop up menu which is linked with listbox in tkinter?

我正在尝试创建一个列表框,在其中按“输入键”AKA <Return>
在所选行前面弹出一个菜单,像这样

我尝试使用示例,但似乎菜单仅在鼠标所在的位置弹出

我要问的甚至可能吗? 如果是这样,我怎样才能获得列表框中任何行的 x,y 位置?

可悲的是,我什至无法提供伪代码来进一步解释,因为我不知道它会是什么样子,所以请原谅我不够清楚

列表框的curselection方法将返回所选项目的列表。 列表框的bbox方法将给出项目相对于列表框本身的坐标。 您可以使用winfo_rootxwinfo_rooty来获取屏幕上列表框的绝对坐标。 您可以使用所有这些信息将菜单放置在所选项目附近。

例如:

def show_popup(event):
    selection = event.widget.curselection()
    if selection:
        item = selection[0]
        rootx = event.widget.winfo_rootx()
        rooty = event.widget.winfo_rooty()
        itemx, itemy, itemwidth, itemheight = event.widget.bbox(item)
        popup_menu.tk_popup(rootx+event.widget.winfo_width()-10, rooty+itemy+10)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM