2014-12-07 5 views
1

Я сделал простое окно с некоторыми кнопками usin Tkinter. Одна кнопка находится в отключенном состоянии в начале, но я хочу, чтобы она снова превратилась в нормальное состояние после нажатия другой кнопки. Итак, как я могу изменить свойства кнопки во время работы кода?Wierd сбой материала в блендере

from tkinter import * 

def com(): 
    print ('activate') 

def win(): 
    window = Tk() 
    window.geometry ('500x500') 
    b1 = Button(text = 'Disabled', pady = '10', padx = '10', state = DISABLED) 
    b1.place(x=100, y=10) 
    b2 = Button(text = 'activate', pady = '10', padx = '10', command=com) 
    b2.place(x=10, y=10) 
    window.mainloop 

win() 
+1

Не должен 'window.mainloop' быть' window.mainloop() '? –

+1

Кажется, что нет никакой корреляции между заголовком и вопросом. – jonrsharpe

ответ

1

вы должны использовать команду <buttonname>.config(state=STATE), с ГОСУДАРСТВЕННАЯ быть либо:

  • NORMAL (по умолчанию)
  • ACTIVE
  • ИНВАЛИДОВ

Source Я взял на себя смелость создать редактируя свой код, чтобы проверить это, и он работает, см. ниже!

from Tkinter import * 

def com1(): 
    print ('activate') 
    b1.config(state = ACTIVE) 
    b2.config(state = DISABLED) #toggles the buttons 

def com2(): 
    print('de-activate') 
    b1.config(state = DISABLED) 
    b2.config(state = ACTIVE) #toggles the buttons 

def win(): 
    global b1 
    global b2 #This is to allow passing b1 and b2 to com1 and com2, but may not be the most "efficient" way to do this... 
    window = Tk() 
    window.geometry ('500x500') 
    b1 = Button(text = 'Disabled', pady = '10', padx = '10', state = DISABLED, command = com2) #command com2 added here 
    b1.place(x = 100, y = 10) 
    b2 = Button(text = 'activate', pady = '10', padx = '10', command = com1) #com changed to com1 
    b2.place(x = 10, y = 10) 

    window.mainloop() 

win() 
+0

Спасибо. И я прошу прощения за титул ошибки. Я хотел задать вопрос с этим названием некоторое время назад, но я нашел решение сам, но название осталось там, и я забыл изменить его. –

Смежные вопросы