이것은 내 첫 번째 Python 프로그램이며 if 문이 정확하다고 생각합니다. 모르겠다. 모르겠다. Tkinter 버튼을 클릭하면 버튼에 어떤 이미지가 표시되는지 확인하고 그에 따라 이미지를 변경하는 기능이 필요합니다. 나는이 프로그램을 실행할 때If 문이있는 Tkinter 버튼
이for i in range (0,number):
buttonList.append([])
for j in range(0,number):
print(i,j)
buttonList[i].append(Button(game, borderwidth=0,highlightthickness=0, image=photo,command = lambda i=i, j=j: update_binary_text(i,j)))
buttonList[i][j].grid(row=i*20,column=j*20)
문제는,이 열립니다 :
여기def update_binary_text(first,second):
if buttonList[first][second]["image"] == photo:
buttonList[first][second]["image"] = photo1
는이 명령을 루프 [버튼의 2D 목록]을 위해이다 :
여기 함수에 대한 내 코드입니다 괜찮아요,하지만 모든 버튼을 클릭하면 아무 일도 일어나지 않습니다. if 문을 꺼내어 과제를 지정하면 제대로 작동하지만 먼저 표시 할 이미지를 확인해야합니다.
해결책이있는 사람이 있습니까?
방금 다른 문제가 발생했습니다. 이전에받은 솔루션은 제대로 작동하고 이미지를 변경하지만 첫 번째 클릭에서만 나타납니다. 그 후에는 절대로 다시 변하지 않을 것입니다. 여기
코드입니다 :def update_binary_text(first,second):
#print("Called")
if buttonList[first][second].image == photo:
buttonList[first][second]["image"] = photo0
elif buttonList[first][second].image == photo0:
buttonList[first][second]["image"] = photo1
내가 처음으로 어떤 버튼을 클릭하면 내가 그것을 클릭하면, 그것은 그것에 이미지와 버튼에 빈 버튼 변경됩니다되어 발생 다시 이미지가 바뀌어야하지만 그렇지 않습니다. 사람이 여기보고 싶었다 경우 photo
, photo0
를 초기화하는 문장, 그리고 photo1
:
photo = PhotoImage(file ="blank.gif")
photo0 = PhotoImage(file="0.gif")
photo1 = PhotoImage(file="1.gif")
당신에게 선생님 감사합니다! 나는 ._photo로 시도해 보았고 행운은 없었고 대신 button.image를 시도했다. 감사! – vap
@vap 그렇습니다. 다른 방법도 구현해야하기 때문입니다 (if 문은'.photo == photo1','image' 옵션은'photo'로 설정됩니다). –
오! 이제 나는 그것이 왜 있는지 봅니다. 다시 한 번 감사드립니다! – vap