CEGUI在运行时更改按钮图像

时间:2015-07-15 05:08:27

标签: c++ user-interface cegui

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

例如,我有一个带有“上一页”按钮的布局,三个显示缩略图的按钮和一个“下一步”按钮,当用户点击“下一步”时,三个按钮会改变以显示下三个缩略图。它们需要是按钮,以允许Normal,Hover,Pushed鼠标交互。因此,当用户单击缩略图时,该图像将触发该操作。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

<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" );