CEGUI 在运行时更改按钮图像

CEGUI change button image at runtime

我一直在查看在线文档,但没有找到在运行时更新按钮或标签图像的方法。我正在尝试在按钮布局中显示缩略图。缩略图需要根据可用的图像进行更新,同时保持布局。

例如,我有一个布局,其中包含一个 "Previous" 按钮、三个用于显示缩略图的按钮和一个 "Next" 按钮,当用户单击 "Next" 这三个按钮时更改以显示接下来的三个缩略图。它们需要是按钮,以允许正常、悬停、按下鼠标交互。因此,当用户单击缩略图时,该图像会触发操作。

感谢任何帮助。

我找到了我要找的答案。在 looknfeel 文件中,我定义了一个 属性: "BackgroundImage" 类型 "Image"

<WidgetLook name="MyLook/Thumbnail">
    <Property name="CursorImage" value="MyImageSet/cursorOn" />
    <Property name="CursorPassThroughEnabled" value="true" />
    <PropertyDefinition name="BackgroundImage" redrawOnWrite="true" initialValue="MyImageSet/defaultImage" type="Image"/>
    <Property name="Size" value="{{1, 0}, {1, 0}}" />
    <ImagerySection name="frame">
        <FrameComponent>
            <ImageProperty name="BackgroundImage" />
            <VertFormat type="Stretched" />
            <HorzFormat type="Stretched" />
        </FrameComponent>
    </ImagerySection>
    <StateImagery name="Enabled">
        <Layer>
            <Section section="frame" />
        </Layer>
    </StateImagery>
</WidgetLook>

然后在代码中我使用 属性 定义的设置图像:

CEGUI::DefaultWindow* thumbnail = static_cast<CEGUI::DefaultWindow*>( parrentWindow->getChild( "Thunbnail_1" ));
thumbnail->setProperty( "BackgroundImage", "MyImageSet/movieClipIcon" );