问题描述
我有一个级联的tkinter.Menu,它是使用tearoff = 1创建的。 给泪液命令传递了两个参数:
- 菜单窗口的名称(父窗口的窗口ID?),例如“。#!menu。#!menu#!menu3”之类的字符串,以及
- 撕下的菜单窗口的名称(新的撕下菜单的根窗口的窗口ID),例如“ .tearoff1”之类的字符串。
如何处理此信息? 这是我想做的事情:默认情况下,撕下的菜单放置在屏幕位置(x = 0,y = 0),但是我想将其放置在另一个(x,y)位置。>
我如何做到这一点?
import tkinter as tk
class App:
def __init__(self,root):
menubar = tk.Menu(root)
menuA = tk.Menu(menubar,tearoff=0)
menuB = tk.Menu(menubar,tearoff=0)
menuC = tk.Menu(menubar,tearoff=1,tearoffcommand=self.onTearoff)
menuC.add_command(label="Menu Row1")
menuC.add_command(label="Menu Row2")
menuC.add_command(label="Menu Row3")
menubar.add_cascade(label="MenuA",menu=menuA)
menubar.add_cascade(label="MenuB",menu=menuB)
menubar.add_cascade(label="MenuC",menu=menuC)
self.menubar = menubar
root.config(menu=menubar)
root.geometry("300x200")
def onTearoff(self,wParent,wMenu):
print("onTearoff(%s,%s)" % (wParent,wMenu)) # wMenu = ".tearoff1"
w = root.nametowidget(wMenu) # KeyError: 'tearoff1'
w.geometry("+50+50")
if __name__ == "__main__":
root = tk.Tk()
app = App(root)
root.mainloop()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)