Python tkinter - вызов команды кнопки в классе - PullRequest
0 голосов
/ 22 мая 2018

Я работаю над функциями в классе, и одна из проблем, с которыми я сталкиваюсь, - это добавление кнопки, которая завершает программу.Вот текущий код:

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 голосов
/ 22 мая 2018

Вам необходимо получить доступ к функциям root.Поэтому использование self.root.destory() или self.root.quit() будет работать, потому что у вашего корневого объекта есть эти методы, а у вашего класса их нет.

Вам также следует использовать только один из них, в этом случае destroy - лучший вариант.Я думаю.И вы, вероятно, можете просто использовать это при создании кнопки.Поэтому замените функцию обратного вызова кнопки (команда) на self.root.destory.

Подробнее о о том, как закрыть окно Tkinter здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...