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