Python Tkinter编辑菜单窗口
我正在试着编辑。我如何编辑它 这是给Windows的Python Tkinter编辑菜单窗口,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在试着编辑。我如何编辑它 这是给Windows的 from tkinter import * Window = Tk() MB = Menu(Window) Window.config(menu=MB) Menubar = Menu(MB) MB.add_cascade(label="File", menu=Menubar) Menubar.add_command(label="New File") #Btn1 = Button(Menubar, width=20, text="Bu
from tkinter import *
Window = Tk()
MB = Menu(Window)
Window.config(menu=MB)
Menubar = Menu(MB)
MB.add_cascade(label="File", menu=Menubar)
Menubar.add_command(label="New File")
#Btn1 = Button(Menubar, width=20, text="Button").pack() #I failed.
Window.mainloop()
我尝试了Btn1=Button(菜单栏,宽度=20,text=“Button”).pack()
但这一个不起作用。通常您会像这样在菜单中添加项目-但您在寻找什么
window=Tk()
mb=菜单(窗口)
菜单栏=菜单(mb,tearoff=0)
菜单栏。添加命令(label=“New”)
菜单栏。添加命令(label=“Open”)
菜单栏。添加命令(label=“Save”)
菜单栏。添加命令(label=“另存为…”)
菜单栏。添加命令(label=“Close”)
菜单栏。添加分隔符()
菜单栏。添加命令(label=“Exit”,command=window.quit)
mb.add_cascade(label=“File”,menu=菜单栏)
config(menu=mb)
通常您会像这样在菜单中添加项目-但您在寻找什么
window=Tk()
mb=菜单(窗口)
菜单栏=菜单(mb,tearoff=0)
菜单栏。添加命令(label=“New”)
菜单栏。添加命令(label=“Open”)
菜单栏。添加命令(label=“Save”)
菜单栏。添加命令(label=“另存为…”)
菜单栏。添加命令(label=“Close”)
菜单栏。添加分隔符()
菜单栏。添加命令(label=“Exit”,command=window.quit)
mb.add_cascade(label=“File”,menu=菜单栏)
config(menu=mb)
如果您正在寻找带有按钮的菜单栏控件,您可以这样做。所有代码都将位于Python3中的同一个file.py.Libraries中(对于Python2,更改为将Tkinter作为tk导入)。稍后,您可以使用带有按钮的每个菜单重定向到每个窗口
import tkinter as tk
from tkinter import ttk
全球图书目录
nombre_ventanas={'PageOne'}
在一个菜单栏中,您需要为要显示的每个菜单添加类似的菜单。全球菜单栏、菜单栏1、菜单栏2
def menubar_global(self, root, controller):
menubar_global = tk.Menu(root)
page_1 = tk.Menu(menubar_global, tearoff=0)
# With Submenu for page_1
page_1_1=tk.Menu(page_1 , tearoff=0)
page_1_2=tk.Menu(page_1 , tearoff=0)
主要
用于windows控件的类
class ControlWindow(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
self._nombre_ventanas = nombre_ventanas
for F in self._nombre_ventanas:
F = eval(F)
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
# First window
self.show_frame(Login)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
# Title for each page
self.title(titulo_ventanas[cont._name_for_menu_bar])
# Here you can add if-sentece for each menubar that you want
if cont._name_for_menu_bar != "PageOne":
# Menu bar
print("show_frame", cont)
menubar = frame.menubar(self)
self.configure(menu=menubar)
else:
menubar = 0
self.configure(menu=menubar)
class Ventana_proveedores(tk.Frame):
_name_for_menu_bar = "Ventana_proveedores"
_config = configuracion
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
tk.Button(self, text='Regresar', font=FONT_LABELFRAME,
command=lambda: controller.show_frame(Ventana_gerente)).grid(row=0, column=0)
def menubar(self, root):
return menubar_global(self, root, self.controller)
以后每个页面都需要有这个配置
class PageOne(tk.Frame):
_name_for_menu_bar = "PageOne"
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
def menubar(self, root):
return menubar_global(self, root, self.controller)
如果你正在寻找一个带有按钮的菜单栏控件,你可以这样做。所有代码都将位于Python3中的同一个file.py.Libraries中(对于Python2,更改为将Tkinter作为tk导入)。稍后,您可以使用带有按钮的每个菜单重定向到每个窗口
import tkinter as tk
from tkinter import ttk
全球图书目录
nombre_ventanas={'PageOne'}
在一个菜单栏中,您需要为要显示的每个菜单添加类似的菜单。全球菜单栏、菜单栏1、菜单栏2
def menubar_global(self, root, controller):
menubar_global = tk.Menu(root)
page_1 = tk.Menu(menubar_global, tearoff=0)
# With Submenu for page_1
page_1_1=tk.Menu(page_1 , tearoff=0)
page_1_2=tk.Menu(page_1 , tearoff=0)
主要
用于windows控件的类
class ControlWindow(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
self._nombre_ventanas = nombre_ventanas
for F in self._nombre_ventanas:
F = eval(F)
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
# First window
self.show_frame(Login)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
# Title for each page
self.title(titulo_ventanas[cont._name_for_menu_bar])
# Here you can add if-sentece for each menubar that you want
if cont._name_for_menu_bar != "PageOne":
# Menu bar
print("show_frame", cont)
menubar = frame.menubar(self)
self.configure(menu=menubar)
else:
menubar = 0
self.configure(menu=menubar)
class Ventana_proveedores(tk.Frame):
_name_for_menu_bar = "Ventana_proveedores"
_config = configuracion
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
tk.Button(self, text='Regresar', font=FONT_LABELFRAME,
command=lambda: controller.show_frame(Ventana_gerente)).grid(row=0, column=0)
def menubar(self, root):
return menubar_global(self, root, self.controller)
以后每个页面都需要有这个配置
class PageOne(tk.Frame):
_name_for_menu_bar = "PageOne"
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
def menubar(self, root):
return menubar_global(self, root, self.controller)
不能向菜单中添加任意小部件。要向菜单添加项目,必须使用菜单对象上的以下可用功能之一:
添加
add_命令
添加级联
添加检查按钮
add_单选按钮
添加分隔符
add_命令
,并将命令
属性设置为None
所有这些都是通过菜单小部件定义本身记录的,并且几乎在任何包含小部件文档的站点上。您不能将任意小部件添加到菜单中。要向菜单添加项目,必须使用菜单对象上的以下可用功能之一:
添加
add_命令
添加级联
添加检查按钮
add_单选按钮
添加分隔符
add_命令
,并将命令
属性设置为None
所有这些都是通过菜单小部件定义本身记录的,并且几乎在任何包含小部件文档的站点上。Offtopic:请用Python区分类(CamelCase;你做得对)和实例(全部小写,你做得不对;window,mb,menubar)好的,谢谢。我认为这看起来更好。可读性很重要。你说的“编辑”是什么意思?您希望进行什么类型的编辑?例如添加按钮、标签或其他。Offtopic:请用Python将类(CamelCase;您做得对)与实例(全部小写,您做得不对;window、mb、menubar)区分开来,好的,谢谢。我认为这看起来更好。可读性很重要。你说的“编辑”是什么意思?您希望进行哪种编辑?例如添加按钮、标签或其他。效果很好,除了
top.config
我认为在您的情况下应该是window.config
?效果很好,除了top.config
之外,我认为在您的情况下应该是window.config
?使用Himanshu的答案,没有必要使用command=None
。您可以简单地省略command
作为参数/参数。使用Himanshu的答案,不需要command=None
。您只需将命令
作为参数/参数省略即可。