如何使文字出现在X3D&蟒蛇?

时间:2018-04-17 20:59:16

标签: python x3d

按下鼠标左键时,我正在尝试在场景中显示标准文本。但是,我遇到路由问题。到目前为止,这是我的X3D代码:

<X3D>
    <Scene>
        <Viewpoint DEF="VP" position="0 0 .6"/>
        <PythonScript DEF="PS" url="test.py"/>

        <Shape>
            <Text DEF="TXT" string="initial message">
                <FontStyle justify='MIDDLE' size='0.02' />
            </Text>
        </Shape>

        <MouseSensor DEF="MS"/>

        <ROUTE fromNode="MS" fromField="leftButton" toNode="PS" toField="showText"/>
        <ROUTE fromNode="PS" fromField="showText" toNode="TXT" toField="string"/>
    </Scene>
</X3D>

Python代码:

from H3DInterface import *

class ShowText(TypedField(MFString, SFBool)):

    def __init__(self):
        MFString.__init__(self)
        self.inactive_txt = 'Press left mousebutton'
        self.active_txt = 'Hello World!'

    def update(self, event):
        if event.getValue() == 1:
            return self.active_txt
        else:
            return self.inactive_txt


showText = ShowText()

这是我收到的警告,但无法解决:

  

警告:update()的返回值无效 - Python定义的PythonScript_000000000722E320.ShowText类型字段的函数

这对我来说很奇怪,因为text-node有属性字符串,它是base_type MFString。

1 个答案:

答案 0 :(得分:0)

必须通过将字符串定义为:

来提供MFString
self.active_txt = ['some string']