我正在尝试向每个按钮添加一个功能,但是当我这样做时,该功能会立即打开,而无需按下菜单中的按钮。
你好,我是编程新手,我正在尝试学习一些有关为记事本创建菜单的基本知识,到目前为止,我已经学会了如何创建菜单及其中的按钮,我正在尝试添加每个按钮都有一个函数,但是当我这样做时,该函数会立即打开而无需我按菜单中的按钮,到目前为止唯一有效的方法是尝试使用lambda函数,但是我希望能够编写函数而不必在lambda函数之后编写该函数的整个代码。
from tkinter import Tk, scrolledtext, Menu, filedialog
from tkinter.scrolledtext import ScrolledText
from tkinter import*
#Root main window
root = Tk(className=" Text Editor")
textarea = ScrolledText(root, width=80, height=100)
textarea.pack()
# Menu options
menu = Menu(root)
root.config(menu=menu)
filename = Menu(menu)
edicion = Menu(menu)
# Funciones
def open_file ():
file = filedialog.askopenfiles(parent=root, mode='rb', title="Select a file")
if file != None:
contenidos = file.read()
textarea.insert('1.0', contenidos)
file.close
menu.add_cascade(label="File", menu=filename)
filename.add_command(label="New")
filename.add_command(label="Open", command= open_file)
filename.add_command(label="Save")
filename.add_separator()
filename.add_command(label="Exit")
menu.add_cascade(label="Editar", menu=edicion)
edicion.add_command(label="Cortar")
edicion.add_command(label="Pegar")
edicion.add_command(label="Copiar")
textarea.pack()
root.mainloop()
答案 0 :(得分:0)
在此行:
filename.add_command(label="Open", command= open_file())
您不希望在命令后添加多余的()
,这会调用您的函数。尝试不使用:
filename.add_command(label="Open", command= open_file)