2015-05-22 7 views
2

Я искал в Интернете и не мог найти способ удалить изображение, которое я разместил на кнопке. Мне было интересно, есть ли способ удалить изображение, но сохраните кнопку или любое другое простое быстрое исправление. Вот некоторые из моих кодов для справки.Как сбросить изображение на кнопке в tkinter?

def breakcup(): 
    if firstroom.cupnotbroken: 
     messagebutton.config(text="You broke the cup, and the key was inside the cup.") 
     cup.config(image=photo4) 
     firstroom.cupnotbroken=False 
    else: 
     cup.config(image=None, state=DISABLED) 
     messagebutton.config(text="You picked up the key") 
     firstroom.keynotfound=False 

Очевидно, что image=None не работает, но это было ближе всего я мог бы найти в качестве решения.

root = Toplevel(bob) 
root.geometry("640x360+200+250") 
root.resizable(0, 0) 
app = Room1(root) 

Окна выполнены с использованием функции Toplevel(parent). Просто для уточнения.

+0

Все переменные, которые вы видите в коде, объявлены. Пожалуйста, не комментируйте меня о синтаксисе. Все работает. – ZeBirdeh

+0

Догадайтесь, но возможно, что 'image = None' является значением параметра по умолчанию, что означает игнорирование этого параметра. Вы можете попробовать создать «нулевое» изображение и сделать с этим cup.config(). –

+0

Да, я знал, что 'image = None' работал так, но вы могли бы привести пример того, как я могу создать нулевой образ? – ZeBirdeh

ответ

1

Это, кажется, ошибка с Tkinter. Из моих экспериментов, кажется безопасным, чтобы установить изображение в пустую строку, а не None:

messagebutton.configure(image="") 

Это работает, потому что в основной TCL интерпретатором/Tk «все это строка». То есть эквивалент tcl для None - "". Когда вы укажете пустую строку, Tkinter передает эту пустую строку в tcl, а tcl интерпретирует ее как «нет изображения».

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