有没有办法将 Tkinter 菜单放入最终项目?
is there a way to put Tkinter menu to final project?
我正在为我的考试项目创建一个游戏,并且正在努力将我的代码和 Tkinter 菜单整合在一起。
我有一个名为 'Arcade Final' 的项目,它显示了用户可以玩的所有游戏。我将这些游戏导入到我的最终代码中,并在按下相关按钮后调用它们。
如何导入 Tkinter 代码而不像这样在白框中显示它,而只在顶部显示菜单?
the current output
您的问题的可能原因是您在 sub-files 中调用 Tk()
,它调用称为根 window 的白框。
您可以通过返回一个包含所有小部件的框架来解决这个问题,然后在主文件中添加菜单栏。
示例:
- 包含游戏的文件:
# test.py
from tkinter import Frame,Label
def a(root):
a=Frame(root)
b=Label(a,text="Hello!")
b.pack()
a.pack()
return a
- 对于主文件:
import tkinter as tk
a1=tk.Tk()
mb= Menubutton ( a1, text="condiments", relief=RAISED )
mb.pack()
mb.menu = Menu ( mb, tearoff = 0 )
mb["menu"] = mb.menu
mayoVar = IntVar()
ketchVar = IntVar()
mb.menu.add_checkbutton ( label="mayo",
variable=mayoVar )
mb.menu.add_checkbutton ( label="ketchup",
variable=ketchVar )
a(a1)
a1.mainloop()
我正在为我的考试项目创建一个游戏,并且正在努力将我的代码和 Tkinter 菜单整合在一起。
我有一个名为 'Arcade Final' 的项目,它显示了用户可以玩的所有游戏。我将这些游戏导入到我的最终代码中,并在按下相关按钮后调用它们。
如何导入 Tkinter 代码而不像这样在白框中显示它,而只在顶部显示菜单?
the current output
您的问题的可能原因是您在 sub-files 中调用 Tk()
,它调用称为根 window 的白框。
您可以通过返回一个包含所有小部件的框架来解决这个问题,然后在主文件中添加菜单栏。
示例:
- 包含游戏的文件:
# test.py
from tkinter import Frame,Label
def a(root):
a=Frame(root)
b=Label(a,text="Hello!")
b.pack()
a.pack()
return a
- 对于主文件:
import tkinter as tk
a1=tk.Tk()
mb= Menubutton ( a1, text="condiments", relief=RAISED )
mb.pack()
mb.menu = Menu ( mb, tearoff = 0 )
mb["menu"] = mb.menu
mayoVar = IntVar()
ketchVar = IntVar()
mb.menu.add_checkbutton ( label="mayo",
variable=mayoVar )
mb.menu.add_checkbutton ( label="ketchup",
variable=ketchVar )
a(a1)
a1.mainloop()