Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 3, 2015 18:17:53

DK1000
Зарегистрирован: 2015-10-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Отключение кнопки

Возникла проблема. Написал простую программку. Есть две кнопки, одна выводит текст “Hello”, вторая кнопка делает статус первой кнопки “disabled”. При этом первая кнопка становится не активной, серой, но при нажатии на нее все равно происходит вывод текста “Hello”. Почему она не выключается?

Вот простой код

# -*- coding: utf-8 -*-
from Tkinter import *
def Nul1(event):
    print('Hello')
def Nul2(event):
    btn1.configure(state='disabled')
root = Tk()
root.title( 'Observer' )
root.geometry( '400x400' )
btn1 = Button(root,
             text="Кнопка 1",
             #width=15,height=5,
             bg="white",fg="black",font="Arial 12")
btn2 = Button(root,
             text="Кнопка 2",
             #width=15,height=5,
             bg="white",fg="black",font="Arial 12")
btn1.bind("<Button-1>", Nul1)
btn1.pack()
btn2.bind("<Button-1>", Nul2)
btn2.pack()
root.mainloop()

Офлайн

#2 Окт. 3, 2015 18:56:06

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Отключение кнопки

.bind
Если хотите, чтобы disabled отрабатывал в полном объеме, а не только менял внешний вид, то используйте command вместо bind.

Если нужен обязательно .bind, то проверяйте внутри колбека, что кнопка активная:

def Nul1(event):
    if event.widget["stare"] != "disabled":
        print('Hello')

P.S. Для тем по GUI есть специальная ветка…

Офлайн

#3 Окт. 3, 2015 21:10:50

DK1000
Зарегистрирован: 2015-10-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Отключение кнопки

Спасибо, так и сделал. Почему-то не додумался проверять статус кнопки. А подскажите еще, пожалуйста. У стандартного окна Ткинкера красуется его красный значок в вернем левом углу. А как его заменить на свой? Каким способом?

Офлайн

#4 Апрель 3, 2017 17:27:35

DemianWolf
Зарегистрирован: 2017-04-01
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Отключение кнопки

 root.iconbitmap('<Путь к иконке>')
В данном случае root - название окна. Вместо ‘<Путь к иконке>’ введите путь к файлу с иконкой.
Enjoy!



То, что не убивает нас, делает нас сильнее.

Офлайн

#5 Апрель 3, 2017 18:18:07

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Отключение кнопки

DemianWolf
Где-то некрономикон завалялся?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version