아래 코드를 사용하여 버튼 그리드를 만들었습니다.
for x in range(10):
for y in range(10):
btn = Button(frame, command=button_click(x, y))
btn.config(height=1, width=1)
btn.grid(column=x, row=y, sticky='nsew')
버튼을 클릭하면 버튼을 다른 색상으로 바꾸는 함수 button_click을 작성하고 싶지만 루프의 모든 버튼을 만들었으므로 각 버튼에 대한 특정 변수 이름이 없으므로 어떻게해야할지 모르겠습니다. 최선을 다할까요? 버튼을 만드는 것만으로 100 줄의 코드를 작성하고 싶지 않았습니다. 버튼의 좌표를 함수에 전달하고 어떻게 든이 정보를 사용하여이 작업을 수행 할 수 있다고 생각했지만 해결책을 찾을 수 없습니다. 이 작업을 수행하는 방법에 대한 제안이나 제가 취할 수있는 대안적인 접근 방식은 대단히 감사하겠습니다!
이 시도:
import tkinter as tk
import random
def button_click(btn):
color = random.choice(['red', 'blue', 'green'])
btn.config(bg=color)
print(btn)
window = tk.Tk()
for x in range(10):
for y in range(10):
btn = tk.Button(window)
btn.config(text=f'{x}{y}',height=1, width=1, command=lambda button=btn: button_click(button))
btn.grid(column=x, row=y, sticky='nsew')
window.mainloop()
업데이트 : 프레임의 버튼
import tkinter as tk
import random
def button_click(btn):
color = random.choice(['red', 'blue', 'green'])
btn.config(bg=color)
print(btn)
window = tk.Tk()
frame = tk.Frame(window)
frame.pack()
for x in range(10):
for y in range(10):
btn = tk.Button(frame)
btn.config(text=f'{x}{y}',height=1, width=1, command=lambda button=btn: button_click(button))
btn.grid(column=x, row=y, sticky='nsew')
window.mainloop()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다