2014-05-12 27 views
1

我是初學者程序員!我的程序不是一流的。我只需要弄清楚如何調整我要調用的兩個窗口:TicWindow和ScoreBoard。在我的ScoreBoard類下面,我編寫了self.board = TicWindow()& self.board.geometry(「500x500 + 300 + 300」)。我已經閱讀過,調整窗口大小需要調用一個根窗口,這是我的TicWindow。我知道這是錯誤的,因爲它看起來像是在錯誤的地方,它會打開第三個調整大小的窗口。任何幫助表示讚賞!在Python中Tkinter:我可以使用什麼選項來調整窗口大小?

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

提示:您可以通過在命令行 – Kevin

+0

順便說一句運行'蟒蛇--version'驗證你所使用的Python的版本,我想修正你的縮進(你的'class'和它的'def's處於同一級別),但看起來還是有一堆問題,例如。 'self.squares = []'比之前的行縮進得更遠。你能否證實這裏顯示的代碼正是你本地的代碼? – Kevin

+0

不是。當我把它放在我的問題中時,縮進被搞砸了。抱歉。我一定會修復它!謝謝 – user3271467

回答

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

+0

非常感謝!這工作!現在,我將如何調整我的TicWindow。除了TicWindow類之外,同樣的方式(ish)? – user3271467

+0

是的,你明白了。 – Kevin

相關問題