如何解决如何创建一个与 tkinter 中的列表框链接的弹出菜单?
我正在尝试创建一个列表框,在其中按“Enter 键”AKA <Return>
将
在选中的行前弹出一个菜单,如 this
我尝试使用 this 示例,但似乎菜单仅在鼠标所在的位置弹出
我问的甚至可能做吗?如果是这样,如何获取列表框中任何行的 x、y 位置?
遗憾的是,我什至无法提供伪代码来进一步解释,因为我什至不知道它会是什么样子,所以请原谅我不够清楚
解决方法
列表框的 curselection
方法将返回所选项目的列表。列表框的 bbox
方法将给出一个项目相对于列表框本身的坐标。您可以使用 winfo_rootx
和 winfo_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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。