glek1
@glek1
Учу python

Как заставить кнопку tkinter оставаться нажатой, пока другая не будет нажата?

Как один раз нажать на кнопку и чтобы она оставалась нажатой, пока не будет нажата другая кнопка?
Вот код:

root = tkinter.Tk()
root.geometry('250x350')
root.configure(bg = "white")
root.title("")
root.resizable(False, False)

lb = tkinter.Label(root, text = text)
lb.configure(bg = "white")
lb.place(x = 25, y = 25, height=25, width=200)

but1 = tkinter.Button(root, text = "Привет!", command=main)
but1.config(bd = 1, font = ("Castellar", 25), bg = "white")
but1.place(x = 50, y = 160, height = 50, width = 150)

but2 = tkinter.Button(root, text = "Пока!", command=bye)
but2.config(bd = 1, font = ("Castellar", 25), bg = "white")
but2.place(x = 50, y = 220, height = 50, width = 150)

root.mainloop()
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
Вам нужно свойство кнопки relief - SUNKEN и RAISED

Говнокод:
def change_but1():
    but2['bg'] = '#ffffff'
    but2['relief'] = tkinter.RAISED    
    but1['bg'] = '#eeeeee'
    but1['relief'] = tkinter.SUNKEN
    
    
def change_but2():
    but1['bg'] = '#ffffff'
    but1['relief'] = tkinter.RAISED    
    but2['bg'] = '#eeeeee'
    but2['relief'] = tkinter.SUNKEN


but1 = tkinter.Button(root, text = "Привет!", command=change_but1)
but1.config(bd = 1, font = ("Castellar", 25), bg = "white")
but1.place(x = 50, y = 160, height = 50, width = 150)

but2 = tkinter.Button(root, text = "Пока!", command=change_but2)
but2.config(bd = 1, font = ("Castellar", 25), bg = "white")
but2.place(x = 50, y = 220, height = 50, width = 150)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
danila763
@danila763
Учу python, sql
у вас кнопки привязаны к функциям main и bye, начните эти функции так:
def main():
    but1['relief'] = 'sunken'
    but2['relief'] = 'raised'

def bye():
    but1['relief'] = 'raised'
    but2['relief'] = 'sunken'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Idaproject Москва
от 70 000 ₽
БАРС Груп Санкт-Петербург
от 60 000 до 200 000 ₽
Alente Красноярск
от 60 000 до 70 000 ₽
25 июл. 2021, в 12:20
1500 руб./за проект
25 июл. 2021, в 11:36
500 руб./за проект