2010-06-13 20 views
2

我寫了這個代碼來打開Pyglet Python中的窗口...「類型錯誤:平局()到底需要1個非關鍵字參數(3給出)」

import pyglet 
from pyglet import window 

class Window(pyglet.window.Window): 
    def __init__(self): 
     super(Window, self).__init__() 

     myLabel = pyglet.text.Label("Prototype") 

     windowText = myLabel.draw(Window, "Hello World", 
         font_name = "Times New Roman", 
         font_size = 36, 
         color = (193, 205, 193, 255)) 

    def on_draw(self): 
     self.clear() 
     self.label.draw() 

if __name__ == '__main__': 
    window = Window() 
    pyglet.app.run() 

但是我每次運行它得到這個錯誤:

TypeError: draw() takes exactly 1 non-keyword argument (3 given) 

AFAIK的「(給定3)」表示問題出在FONT_SIZE或顏色論點,但我不知道。有人可以解釋什麼是錯的,並幫助我完成這項工作?

回答

1

您給出的三個非關鍵字參數是對象實例Window"Hello World"。它只期望對象實例。再次檢查文檔是否有draw()方法需要的參數。考慮打印myLabelrepr(),以便您知道它是哪種類型。

0

我從來沒有使用pyglet,但根據文檔draw不採取任何參數。

然而the constructor確實需要這些參數,下面是合法的:

label = pyglet.text.Label('Hello, world', 
          font_name='Times New Roman', 
          font_size=36, 
          x=10, y=10) 

here

1

傳遞給draw()的三個非關鍵字參數是myLabel(暗示,變爲self),Window和「Hello World」。該方法的文檔是here

你確定你不打算做更像這樣的事嗎?

myLabel = pyglet.text.Label("Hello World") 
相關問題