编程语言
首页 > 编程语言> > python-TypeError:不支持的操作数类型

python-TypeError:不支持的操作数类型

作者:互联网

这是我正在编写的程序,应该在窗口中显示一些文本…

import pyglet
from pyglet import window
from pyglet.text.layout import TextLayout

class Window(pyglet.window.Window):
    def __init__(self):
        super(Window, self).__init__(width = 800, height = 600,
                                 caption = "Prototype")

        self.disclaimer = pyglet.text.Label("Hello World",
                                   font_name = 'Times New Roman',
                                   font_size=36,
                                   color = (255, 255, 255, 255),
                                   x = TextLayout.width / 2,
                                   y = TextLayout.height / 2,
                                   anchor_x='center', anchor_y='center')

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

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

…但是每次我尝试运行它时,都会出现此错误

line 16
x = TextLayout.width / 2,
TypeError: unsupported operand type(s) for /: 'property' and 'int'

我很确定这意味着我试图分割字符串,但是在Pyglet文档中它说宽度和高度是整数.我不知道我在做什么错.

解决方法:

TextLayout是一个类-所以TextLayout.width是原始属性,对您来说几乎没有用;您想从TextLayout类的实例而不是从类本身获取宽度!此外,该类专门用于布置文本文档,因此我真的看不到为什么要获得它(因为周围没有文档对象).

我怀疑您实际上想要的是:

                               x = self.width / 2,
                               y = self.height / 2,

并删除TextLayout的导入和所有提及.

标签:pyglet,typeerror,python
来源: https://codeday.me/bug/20191210/2098144.html