在Python Tkinter中:我可以使用什么选项来调整窗口大小?

时间:2014-05-12 13:15:34

标签: python tkinter window-resize

我是初学者程序员!我的节目不是很棒。我只需要弄清楚如何调整我正在调用的两个窗口的大小: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()

1 个答案:

答案 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")

结果:

enter image description here