Как исправить "не могу вызвать кнопку команды" в Python, используя tkinter - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь tkinter в python fo в первый раз, но команда Button создает ошибку

from tkinter import *
RandomWindow = Tk()
Close = RandomWindow.destroy()
RandomButton = Button(RandomWindow, text = "Click to shuffle and select cards", command = Close)
RandomButton.pack()

Это должно создать окно с кнопкой, но я просто получаю сообщение об ошибке

_tkinter.TclError: can't invoke "button" command: application has been destroyed

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Здесь:

Close = RandomWindow.destroy() 

вы на самом деле вызываете метод destroy окна, поэтому, когда вы нажимаете следующую строку:

RandomButton = Button(RandomWindow, ...)

выпередача уже уничтоженного окна на вашу кнопку, отсюда и ошибка.

Вы хотите:

Close = RandomWindow.destroy # no parens, just reference the method
RandomButton = Button(
    RandomWindow, 
    text="Click to shuffle and select cards", 
    command=Close
) 

или еще проще:

RandomButton = Button(
    RandomWindow, 
    text="Click to shuffle and select cards", 
    # no parens, just reference the method
    command=RandomWindow.destroy
 ) 
1 голос
/ 21 мая 2019

Вы уже уничтожили окно, в котором назначаете RandomWindow.destroy() для Close.

Вот что вы, вероятно, имели в виду:

def Close(): RandomWindow.destroy()

Используйте это вместо Close = RandomWindow.destroy()

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