2017-12-29 32 views
0

그래서 Tkinter의 GUI를 사용하여 A-Level 평가를위한 스도쿠 시뮬레이터를 만들도록 요청 받았습니다. 나는 9x9 버튼 그리드를 만들었지 만 모든 3 번째 라인을 굵게 (A) 또는 버튼의 모든 3x3 그룹에 다른 색상 (B)을 사용하고 싶습니다. 아래는 내가 염두에 두었던 이미지입니다. A버튼의 색 Tkinter

B

다음은 내 코드입니다.

from tkinter import * 

#Create & Configure root 
root = Tk() 
Grid.rowconfigure(root, 0, weight=1) 
Grid.columnconfigure(root, 0, weight=1) 
root.resizable(width=False, height=False) 

#Create & Configure frame 
frame=Frame(root, width=900, height = 900) 
frame.grid(row=0, column=0, sticky=N+S+E+W) 


#Create a 9x9 (rows x columns) grid of buttons inside the frame 
for row_index in range(9): 
    Grid.rowconfigure(frame, row_index, weight=1) 
    for col_index in range(9): 
     Grid.columnconfigure(frame, col_index, weight=1) 
     btn = Button(frame, width = 12, height = 6) #create a button inside frame 
     btn.grid(row=row_index, column=col_index, sticky=N+S+E+W) 


root.mainloop() 

모든 도움을 주시면 감사하겠습니다.

참고 사항 : 나중에 각 버튼에 숫자를 추가하고 스도쿠 게임을 할 수 있도록 할 예정이므로 솔루션을 만들 때 염두에 두시기 바랍니다. 어떻게 모든 버튼을 효율적으로 (for for 루프에서) 할당 할 수 있는지에 대한 도움도 받으실 수 있습니다 !! 당신이 가서

+0

저는 이것이 OOP를 사용하는 꽤 좋은 프로젝트라고 생각합니다. 각 9x9는 박스 클래스로 간주 될 수 있습니다. – Nae

+0

내가 어떻게 이것을 OOP로 조정할 수 있을지에 대한 아이디어. 나는 일반적으로 프로그래밍에 익숙하지 않다. –

+0

oop structuring에 대해 [this post] (https://stackoverflow.com/a/17470842/7032856)를 볼 수있다. – Nae

답변

0

가 여기에 버튼을 색칠하는 방법을 보여주는 MCVE있어 :

import tkinter as tk 

root = tk.Tk() 

for row_index in range(9): 
    for col_index in range(9): 
     if (row_index in {0, 1, 2, 6, 7, 8} and col_index in {3, 4, 5}) or \ 
       (row_index in {3, 4, 5} and col_index in {0, 1, 2, 6, 7, 8}): 
      colour = 'black' 
     else: 
      colour = None 
     button = tk.Button(root, width=1, height=1, bg=colour) 
     button.grid(row=row_index, column=col_index, sticky='nswe') 

root.mainloop() 

를 ... 그것은 번호를 할당에 올 때, 나는 생각해 당신에게 그것을 떠날 것 체계.

+0

감사합니다! 나는 이것을 내 코드에 포함시켰다. 귀하의 도움을 크게 주셨습니다. –