我正在尝试制作9x9网格文本框。我一直在网格函数的“输入”部分遇到错误。请帮忙,因为代码不符合我的要求,我对自己陷入的不幸情况感到非常难过。
import Tkinter
from Tkinter import *
import tkMessageBox
def window():
main_window = Tkinter.Tk()
main_window.geometry("500x500")
main_window.wm_title("Sudoku Solver 2000gazillion")
main_window.mainloop()
def grid():
knownNumbers = [
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0]
]
for row in range(0,9):
for col in range(0,9):
entry = Entry(main_window, textvariable = knownNumbers[row][col])
entry[row][col].grid(row=row, column=col)
def goButtonAction():
tkMessageBox.showinfo("Horray!", 'Finished product goes here')
def goButton():
button=Button(main_window, text = "Solve it!", command = goButtonAction )
button.grid(row=10, column=0, columnspan = 9)
def main():
window()
grid()
goButton()
main() #run it up
我收到以下错误:
Traceback (most recent call last):
File "C:/Windows/System32/temp", line 40, in <module> main() #run it up
File "C:/Windows/System32/temp", line 37, in main grid()
File "C:/Windows/System32/temp", line 25, in grid entry = Entry(main_window, textvariable = knownNumbers[row][col])
NameError: global name 'main_window' is not defined
我正在使用Python 2.7
答案 0 :(得分:0)
您正在main_window
函数中定义window()
变量。这将限制将此变量用于window()
函数。如果你想让它随处可用,你可以。 G。在window()
函数之外定义它,例如: G。像这样:
# Imports
main_window = Tkinter.tk()
def window():
main_window.geometry("500x500")
# Rest of your code