Python tkinter - 在类中调用按钮命令

时间:2018-05-22 00:49:46

标签: python tkinter

我正在处理一个类中的函数,我遇到的一个问题是添加一个终止程序的按钮。这是当前的代码:

class ClassName():
    def __init__(self, root):
        self.root = root

    def close_root(self, root):
        root.destroy()
        root.quit()

    def addExitButton(self, root):
        Button(root, text = 'Exit', width = 10, command = self.close_root).grid(row = 5, 
             column = 0)

在按钮参数中,我尝试了command = self.close_root(root)但是这给了我一个错误,因为如果你想让按钮做某事就无法调用函数(我忘记了为什么这是)。我也试过

def close_root(self):
    self.destroy()
    self.quit()

def addExitButton(self, root):
    Button(..., command = self.close_root,...)

这不起作用,因为班级没有属性destroy.我不确定在尝试几种不同的方法后如何处理这个问题。

1 个答案:

答案 0 :(得分:0)

您需要实际访问root的功能。因此,使用self.root.destory()self.root.quit()将起作用,因为您的根对象具有这些方法,但您的类没有。

你也应该只使用其中一个,在这种情况下,destroy是我认为最好的选择。你可以在创建按钮时使用它。所以用self.root.destory替换按钮回调(命令)。

更多信息请点击how to close a Tkinter window here.