我的代码有一个小问题。 我需要一个弹出菜单在我的界面上,弹出,不是当鼠标右键按下,而是当一个按钮(tkinter小部件)被点击
例如:http://effbot.org/zone/tkinter-popup-menu.htm
但是,我希望在与按钮相同的坐标处创建popupmenu,而不是事件坐标
self.popup_menu.tk_popup(x_button, y_button, 0)
问题是,当我移动我的界面窗口或滚动屏幕栏(我的界面中有一个)并再次单击按钮时,弹出菜单不是在按钮所在的确切位置创建的。似乎.tk_popup只获取窗口坐标,而不是画布坐标
有人知道解决办法吗
编辑: 以下是一个例子:
from Tkinter import *
root = Tk()
popup = Menu(root, tearoff=0)
popup.add_command(label="Main Product")
popup.add_command(label="Side Product")
def popupm(x, y):
try:
popup.tk_popup(x, y, 0)
finally:
popup.grab_release()
x = 10
y = 15
bt = Button(root, text='Menu', command= lambda: popupm(x , y))
bt.place(x = 10, y = 15)
root.mainloop()
你好
按钮有两个方法可以为您提供所需的内容:.winfo_rootx()和.winfo_rooty() 以下是一个工作示例:
我在python3中测试了它,如果它不能转换为2,那么很抱歉。 如果您有任何问题或需要帮助调整,请告诉我们
相关问题 更多 >
编程相关推荐