Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему Python выдаёт ошибку на 33 строке? if r1 (fill='red'): TypeError: 'int' object is not callable

E Знаток (376), на голосовании 3 года назад
Def f1():
c.itemconfig(r1,fill='blue')
def f2():
c.itemconfig(r2,fill='red')

from tkinter import *
root=Tk()

c=Canvas(root, width=200, height=200,bg='white')
c.pack()
b1=Button(root, width=10, height=5,bg='green', fg='black',
text='Button 1', command=f1)
b2=Button(root, width=10, height=5,bg='black', fg='green',
text='Button 2', command=f2)
clicks=0

def click_button(b1):
global clicks
clicks += 1
root.title("Clicks {}".format(clicks))
def click_button(b2):
global clicks
clicks += 1
root.title("Clicks {}".format(clicks))

c.pack()
b1.pack()
b2.pack()
r1=c.create_rectangle(10,200,30,120,fill='red',outline='black',
width=5, activedash=(4,3))
r2=c.create_rectangle(190,0,170,80,fill='blue',outline='black',
width=5, activedash=(4,3))
if r1 (fill='red'):
def f1():
c.itemconfig(r1,fill='blue')
if r2 (fill='blue'):
def f2():
c.itemconfig(r2,fill='red')

root.mainloop()
Голосование за лучший ответ
Алексей Хвостовский Мудрец (18112) 3 года назад
Потому что надо обращаться к полю экземпляра r1
Что-нибудь типа такого..

if r1.fill == 'red':
Похожие вопросы