如何让函数读取另一个函数
How to have function read another function
我需要一个 done 变量来在完成时关闭 window。菜单也是一个功能。我试过 root1.destory 但由于 done 函数看不到 root1 是什么,因为它在函数内部,它说 root1 未定义。我如何让 done 函数了解 root1 是什么并关闭它。这两个功能都在别处调用。我正在使用函数,因为我不希望它们立即开始并且只在需要时才出现。我的代码是:
def edit_menu():
root1 = Tk()
root1.title("Edit Menu")
menu = Frame(root1)
menu.pack(pady = 5, padx = 50)
var = StringVar(root1)
options = [
"Forename",
"Surname",
"Email",
"Date of birth",
"Home address",
"Home phone number",
"Gender",
"Tutor group",
]
option = OptionMenu(menu, var, options[0], *options, command=edit_functions)
var.set('Select')
option.grid(row = 1, column = 1)
root1.mainloop()
return edit_menu
def done():
print()
done = (input("If you have finnished editing, type done: "))
if done == "done":
root1.destroy()
您似乎只是向我们展示了整个代码的一部分,因此这个答案可能有限,但是您应该很容易将其集成到您的代码中。
我们可以在创建 tkinter window 时放入我们需要的一切,包括完成按钮。
我想你想要这样的东西:
from tkinter import *
def edit_menu():
root1 = Tk()
root1.title("Edit Menu")
menu = Frame(root1)
menu.pack(pady = 5, padx = 50)
var = StringVar(root1)
options = [
"Forename",
"Surname",
"Email",
"Date of birth",
"Home address",
"Home phone number",
"Gender",
"Tutor group",
]
option = OptionMenu(menu, var, options[0], *options)
var.set('Select')
option.grid(row = 1, column = 1)
done_btn = Button(root1, text = "Done", command = lambda: root1.destroy())
done_btn.pack()
root1.mainloop()
edit_menu()
我需要一个 done 变量来在完成时关闭 window。菜单也是一个功能。我试过 root1.destory 但由于 done 函数看不到 root1 是什么,因为它在函数内部,它说 root1 未定义。我如何让 done 函数了解 root1 是什么并关闭它。这两个功能都在别处调用。我正在使用函数,因为我不希望它们立即开始并且只在需要时才出现。我的代码是:
def edit_menu():
root1 = Tk()
root1.title("Edit Menu")
menu = Frame(root1)
menu.pack(pady = 5, padx = 50)
var = StringVar(root1)
options = [
"Forename",
"Surname",
"Email",
"Date of birth",
"Home address",
"Home phone number",
"Gender",
"Tutor group",
]
option = OptionMenu(menu, var, options[0], *options, command=edit_functions)
var.set('Select')
option.grid(row = 1, column = 1)
root1.mainloop()
return edit_menu
def done():
print()
done = (input("If you have finnished editing, type done: "))
if done == "done":
root1.destroy()
您似乎只是向我们展示了整个代码的一部分,因此这个答案可能有限,但是您应该很容易将其集成到您的代码中。
我们可以在创建 tkinter window 时放入我们需要的一切,包括完成按钮。
我想你想要这样的东西:
from tkinter import *
def edit_menu():
root1 = Tk()
root1.title("Edit Menu")
menu = Frame(root1)
menu.pack(pady = 5, padx = 50)
var = StringVar(root1)
options = [
"Forename",
"Surname",
"Email",
"Date of birth",
"Home address",
"Home phone number",
"Gender",
"Tutor group",
]
option = OptionMenu(menu, var, options[0], *options)
var.set('Select')
option.grid(row = 1, column = 1)
done_btn = Button(root1, text = "Done", command = lambda: root1.destroy())
done_btn.pack()
root1.mainloop()
edit_menu()