Закрытие окна по определенному значению (python)

Я пытаюсь закрыть окно после нажатия кнопки определенное количество раз и выбора одного из двух переключателей. В настоящее время это мой код (по крайней мере, применимый бит):

from tkinter import *
slide=1
window2=Tk()

window2.title("Select Game Length")
window2.geometry('1600x800+0+0')

def next_slide_window2():
    global slide
    slide += 1
    if slide==1:
        window2_bg.config(image=intro1)
    elif slide==2:
        window2_bg.config(image=intro2)
    elif slide==3:
        window2_bg.config(image=intro3)
        game_length_select_btn1.place(x=390, y=350)
        game_length_select_btn2.place(x=790, y=350)
    elif slide>=4 and game_length.get != 0:
        window2.destroy()

best_of_3 = PhotoImage(file = "bestof3.png")
best_of_5 = PhotoImage(file = "bestof5.png")
intro1 = PhotoImage(file = "window2_intro1.png")
intro2 = PhotoImage(file = "window2_intro2.png")
intro3 = PhotoImage(file = "window2_intro3.png")
next = PhotoImage(file = "next.png")

window2_bg=Label(window2,image=intro1)
window2_bg.place(y=50, x=500) #at school, 50, 690; at home, 50, 500

next_button=Button(window2, image=next, command=next_slide_window2)
next_button.place(y=650, x=700) #at school, 800, 900; at home 650, 700

game_length=IntVar()
game_length.set(0)

game_length_select_btn1= Radiobutton(window2, image=best_of_3, 
variable=game_length, value=3, command=game_length_select)

game_length_select_btn2= Radiobutton(window2, image=best_of_5, 
variable=game_length, value=5, command=game_length_select)

window2.mainloop()

После того, как следующая кнопка нажата в четвертый раз, она уничтожает окно независимо от того, выбрана ли одна из кнопок-переключателей. Это должно происходить только в том случае, если один из них. Что случилось?

Должен ли game_length.get быть game_length.get() внутри next_slide_window2()?

acw1668 06.03.2019 02:43

@ acw1668 вау, да, это было слишком просто. Извиняюсь. Не могли бы вы продолжить и ответить на это, чтобы я мог отметить это?

Samantha Maxam 06.03.2019 02:47
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это потому, что вы используете get ссылку на функцию переменной game_length.get для сравнения внутри next_slide_window2() функции.

Измените game_length.get на game_length.get(), чтобы использовать значение переменной game_length.

Другие вопросы по теме