Найти - Пользователи
Полная версия: Отключение кнопки
Начало » Python для новичков » Отключение кнопки
1
DK1000
Возникла проблема. Написал простую программку. Есть две кнопки, одна выводит текст “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()
4kpt_III
.bind
Если хотите, чтобы disabled отрабатывал в полном объеме, а не только менял внешний вид, то используйте command вместо bind.

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

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

P.S. Для тем по GUI есть специальная ветка…
DK1000
Спасибо, так и сделал. Почему-то не додумался проверять статус кнопки. А подскажите еще, пожалуйста. У стандартного окна Ткинкера красуется его красный значок в вернем левом углу. А как его заменить на свой? Каким способом?
DemianWolf
 root.iconbitmap('<Путь к иконке>')
В данном случае root - название окна. Вместо ‘<Путь к иконке>’ введите путь к файлу с иконкой.
Enjoy!
4kpt_V
DemianWolf
Где-то некрономикон завалялся?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB