Python draw() должен вызываться с экземпляром Label в качестве первого аргумента (вместо этого получен экземпляр _WindowMetaclass)

Это класс, который я сделал, используя Python с pyglet для отображения окна.

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()

Каждый раз, когда я пытаюсь запустить его, я получаю сообщение об ошибке «TypeError: несвязанный метод draw() должен быть вызван с экземпляром Label в качестве первого аргумента (вместо этого получен экземпляр _WindowMetaclass)». Я почти уверен, что знаю, что мне нужно делать (найти, как получить экземпляр Label), но не знаю, как это сделать. Может ли кто-нибудь помочь мне понять, как заставить эту работу работать?


person Amorack    schedule 12.06.2010    source источник


Ответы (2)


Если бы мне пришлось угадывать, я бы сказал, что вы должны связать экземпляр, который вы создаете двумя строками выше, и использовать его вместо этого.

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

    windowText = mylabel.draw(...
person Ignacio Vazquez-Abrams    schedule 12.06.2010
comment
Спасибо, что исправили. Но теперь у меня другая ошибка. - person Amorack; 13.06.2010

вы даете класс «Окно» вместо экземпляра в качестве аргумента, попробуйте «я»

person a b    schedule 10.07.2010