我如何为这个数独做一个窗口?

时间:2014-01-13 12:56:48

标签: python tkinter sudoku

from Tkinter import*

class sudoku:           
    def __init__(self, juego):
        try:

            for i in range(9):
                for j in range(9):
                    if int(juego[i][j])>=0 or int(juego[i][j])<=9:
                        juego[i][j] = int(juego[i][j])
                    else:
                        raise ValueError("Dato Erroneo")
        except:
            print('Error')
        self.__juego=juego
        self.__solucion=[]
    def getJuego(self):
        return self.__juego
        print(self.__juego)
    def getSolucion(self, juego):
         self.__solucion=juego
    def getNumero(self,i,j):
         return self.__juego[i][j]==n
    def setNumero(self):
         return self.__solucion
    def Verificar(self,fil,col,n):
         fil=int(fila)
         col=int(columna)
         if self.getNumero(fil,col)==n:
             return True
         if self.getNumero(fil,col)!=0:
             return False
         for c in range(0,9):
             if self.__juego[fil][c]==n:
                 return X
         for l in range(0,9):
             if self.__juego[l][col]==n:
                 return X
         lm=int(fil/3)
         cm=int(col/3)
         for l in range(lm*3,(cm+1)*3):
             for c in range(cm*3,(cm+1)*3):
                 if l >=9 or c>=9:
                     continue
             if self.__juego[l][c]==n:
                 print('l=',l,'c=',c,'numero=',self.grtNumero(l,c),'n')
                 return False
         return True
def Ventana(Vent):
    Vent=Tk()
    Z=[[],[],[],[],[],[],[],[],[],[]]
    for i in range(Z):

我的问题是,如何为此程序创建窗口。换句话说,我如何在那里可视化数独和写数字。

1 个答案:

答案 0 :(得分:1)

从广义上讲,您可以为拼图中的每个方块创建一个Entry小部件的实例。然后,您应该使用grid几何管理器将小部件放在网格中。您可以在循环中为嵌套在行的循环中的列执行创建和布局。

您可以使用insertget方法在每个小部件中插入和检索数据。或者,您可以将Tkinter.IntVar变量与每个条目相关联,然后使用getset方法来获取和设置值。