【发布时间】:2017-03-02 07:24:14
【问题描述】:
我正在尝试创建一个将名称和级联作为参数的类,并将一个项目添加到 GUI 的菜单中(使用 tkinter)。
代码如下所示:
from tkinter import *
class new_menu_item:
def __init__(self, name, cascade):
self.name = name
self.cascade = cascade
menu = Menu(root)
root.config(menu=menu)
name = Menu(menu)
menu.add_cascade(label=cascade, menu=name)
name.add_command(label = name)
root = Tk()
newproject = new_menu_item('New Project', 'Edit')
oldproject = new_menu_item('Add employee', 'File')
root.mainloop()
我搜索并找到了一种在这部分使用 exec(name) 而不是 name 的方法(我认为问题出在哪里):
name = Menu(menu)
menu.add_cascade(label=cascade, menu=name)
但我也明白 exec() 是不安全的,最好不要使用它。
我不确定我在哪里卡住了。但我可以使用一些帮助。
【问题讨论】:
-
当您说“我认为问题出在哪里”时,您指的是什么问题?在您以
newproject = new_menu_item...开头的示例中,您打算这样做吗?创建一个名为“Edit”的新菜单,或者将“New Project”添加到一个名为“Edit”的现有菜单中?
标签: python class tkinter cascade