繁体   English   中英

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

[英]In Python Tkinter: What option can I use to resize a window?

我是初学者程序员! 我的程序不是很出色。 我只需要弄清楚如何调整我正在调用的两个窗口的大小:TicWindow和ScoreBoard。 在我的ScoreBoard类下面,我编写了self.board = TicWindow()和self.board.geometry(“ 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()

听起来好像您想调整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")

结果:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM