我是初学者程序员!我的节目不是很棒。我只需要弄清楚如何调整我正在调用的两个窗口的大小:TicWindow和ScoreBoard。在我的ScoreBoard课程下面,我编写了self.board = TicWindow()& self.board.geometry( “500×500 + 300 + 300”)。我已经读过要调整窗口的大小,你需要调用一个根窗口,这是我的TicWindow。我知道这是错误的,因为它看起来像是在错误的地方,它打开了第三个调整大小的窗口。任何帮助表示赞赏!
import Tkinter
class TicWindow(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.squares = []
self.turn = 0
for r in range(3):
for c in range(3):
b = Square(self).grid(row=r,column=c)
self.squares.append(b)
def turn(self):
return self.turn
def changeTurn(self):
if (self.turn == 0):
self.turn = 1
else:
self.turn = 0
class Square(Tkinter.Button):
def __init__(self,parent):
Tkinter.Button.__init__(self,parent, text=" ", command=self.changeButtonText)
self.canClick = True
def changeButtonText(self):
if (self.master.turn == 0) and (self.canClick == True):
self.config(text = "X")
elif (self.master.turn == 1) and (self.canClick == True):
self.config(text = "O")
self.master.changeTurn()
self.hasBeenClicked()
def canClick(self):
return self.canClick
def hasBeenClicked(self):
self.canClick = False
class ScoreBoard(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.board = Tkinter.Label(self, text = "No Score Yet").pack()
self.board = TicWindow()
self.board.geometry("500x500+300+300")
top = TicWindow()
scoreboard = ScoreBoard()
top.mainloop()
答案 0 :(得分:1)
听起来您想要调整ScoreBoard
的大小。
在ScoreBoard.__init__
内,无需创建另一个TicWindow
实例。这就是为什么你要获得三个窗口的原因。此外,您不应该尝试在同一行上分配一个小部件和pack
- 该变量只会包含None
。
class ScoreBoard(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.board = Tkinter.Label(self, text = "No Score Yet")
self.board.pack()
self.geometry("500x500+300+300")
结果: