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

2024-10-02 00:23:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个初学者程序员!我的节目不怎么样。我只需要弄清楚如何调整我正在调用的两个窗口:TicWindow和ScoreBoard。在我的记分板下面我已经编程了自行董事会=TicWindow()&;self.board.几何体(“500x500+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()

Tags: textselfmasterboardtrueinittkinterdef
1条回答
网友
1楼 · 发布于 2024-10-02 00:23:48

听起来您想调整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

相关问题 更多 >

    热门问题