我如何更改此代码,以便我也可以启动一个名为Drop_down_menu()
done_btn = Button(root, text = "Done", command = lambda: root.destroy())
done_btn.pack()
我查看了之前的文章,这些文章说使用函数并在那里进行操作,但后来却说root没有定义。
答案 0 :(得分:1)
您需要创建一个函数并将root
作为变量传递给它:
def myfunction(root):
root.destroy()
Drop_down_menu()
done_btn = Button(root, text = "Done", command = lambda: myfunction(root))
done_btn.pack()
有关如何在Tkinter here中使用callbacks
的详细信息,这是一个很好的教程。以下是该教程中有关如何使用带参数的回调的示例:
def callback(number):
print "button", number
Button(text="one", command=lambda: callback(1)).pack()
Button(text="two", command=lambda: callback(2)).pack()
Button(text="three", command=lambda: callback(3)).pack()
希望这会有所帮助。
答案 1 :(得分:0)
尝试这个
SimpleCredStashClient.apply(
kms,
dynamo,
DefaultAESEncryption$.MODULE$
);
希望这能回答你的问题
答案 2 :(得分:0)
您也可以以面向对象的方式执行此操作,这样可以通过让您避免使用lambda
来清理代码:
from tkinter import *
class App:
def __init__(self, root):
self.root = root
self.btn = Button(self.root, text="Done", command=self.command)
self.btn.pack()
def command(self):
self.root.destroy()
print("Output")
root = Tk()
app = App(root)
root.mainloop()
答案 3 :(得分:0)
要调用多个函数或命令,您需要像这样使用 lambda:
test_button = Button(text="your_text_button", command=lambda:[function1(),function2()])
text_button.pack()