Отключить / Включить кнопку в TKinter - PullRequest
0 голосов
/ 02 декабря 2018

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

Я пробовал что-то вроде if, иначе, но не заставил его работать.Вот пример:

from tkinter import *
fenster = Tk()
fenster.title("Window")

def switch():
    b1["state"] = DISABLED

#--Buttons
b1=Button(fenster, text="Button")
b1.config(height = 5, width = 7)
b1.grid(row=0, column=0)    

b2 = Button(text="disable", command=switch)
b2.grid(row=0,column=1)

fenster.mainloop()

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Проблема в вашей функции switch.

def switch():
    b1["state"] = DISABLED

Когда вы нажимаете кнопку, каждый раз вызывается switch.Для поведения переключения необходимо указать, чтобы он вернулся в состояние NORMAL.

def switch():
    if b1["state"] == NORMAL:
        b1["state"] = DISABLED
    else:
        b1["state"] = NORMAL
0 голосов
/ 02 декабря 2018

Tkinter Button имеет три состояния: active, normal, disabled.

Вы устанавливаете опцию state на disabled, чтобы выделить кнопку серым цветом и сделать ее не отвечающей.Он имеет значение active, когда мышь находится над ним, и значение по умолчанию - normal.

. С его помощью вы можете проверить состояние кнопки и предпринять необходимые действия.Вот рабочий код.

from tkinter import *

fenster = Tk()
fenster.title("Window")

def switch():
    if b1["state"] == "normal":
        b1["state"] = "disabled"
        b2["text"] = "enable"
    else:
        b1["state"] = "normal"
        b2["text"] = "disable"

#--Buttons
b1 = Button(fenster, text="Button", height=5, width=7)
b1.grid(row=0, column=0)    

b2 = Button(text="disable", command=switch)
b2.grid(row=0, column=1)

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