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" );
我一直在查看在线文档,但没有找到在运行时更新按钮或标签图像的方法。我正在尝试在按钮布局中显示缩略图。缩略图需要根据可用的图像进行更新,同时保持布局。
例如,我有一个布局,其中包含一个 "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" );