2010-06-12 13 views
1

Ceci est une classe que j'ai faite en utilisant Python avec pyglet pour afficher une fenêtre.Python "draw() doit être appelé avec l'instance Label comme premier argument (get _WindowMetaclass instance à la place)"

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

     pyglet.text.Label("Prototype") 

     windowText = text.Label.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() 

Chaque fois que j'essaie de l'exécuter, je reçois l'erreur « TypeError: méthode non liée draw() doit être appelée par exemple d'étiquette comme premier argument (obtenu par exemple _WindowMetaclass à la place) ». Je suis sûr que je sais ce que je dois faire (trouver comment obtenir l'instance de Label) mais pas comment le faire. Quelqu'un pourrait m'aider à comprendre comment faire ce travail?

Répondre

2

Si je devais deviner, je dirais que vous devriez lier l'instance que vous créez 2 lignes ci-dessus et l'utiliser à la place.

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

    windowText = mylabel.draw(... 
+0

Merci qui a fixé il. Maintenant, j'ai une autre erreur. – Amorack

0

vous donner une classe « Fenêtre » au lieu d'une instance comme argument, essayez « soi »