Ogre笔记十:CELayoutEditor 的使用方法
来源:互联网 发布:吉林律师网络培训网 编辑:程序博客网 时间:2024/06/07 22:48
CELayoutEditor编辑是所见即所得的
首先,新建
新建好一个项目后,会有一个Root的跟标签(窗口)
然后你需要向这个空白窗口中
添加若干window
为新窗口命名(这个命名类似windows里面的文件目录)
选择窗口种类(其中有几种不同的皮肤)
这里先展示3种不同风格的Framewindow和Button
下面我们来做一个登录的界面:
我们保存到C:\OgreSDK\media\gui\Login.layout
我们可以用记事本打开Login.layout看看:
<?xml version="1.0" encoding="UTF-8"?><GUILayout > <Window Type="DefaultWindow" Name="Root/main" > <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> <Property Name="UnifiedAreaRect" Value="{{0.000912894,0},{0.000600448,0},{1.00091,0},{1.0006,0}}" /> <Window Type="TaharezLook/FrameWindow" Name="Root/logins" > <Property Name="Font" Value="DejaVuSans-10" /> <Property Name="Text" Value="Welcome" /> <Property Name="Alpha" Value="0.85" /> <Property Name="TitlebarFont" Value="Commonwealth-10" /> <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> <Property Name="TitlebarEnabled" Value="True" /> <Property Name="UnifiedAreaRect" Value="{{0.306762,0},{0.142863,0},{0.769488,0},{0.592477,0}}" /> <Window Type="TaharezLook/StaticText" Name="Root/logins/static" > <Property Name="Font" Value="DejaVuSans-10" /> <Property Name="Text" >Welcome ! Please login first !Account :Password :</Property> <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> <Property Name="UnifiedAreaRect" Value="{{0.0345544,0},{0.158096,0},{0.964979,0},{0.72209,0}}" /> <Window Type="TaharezLook/Editbox" Name="Root/logins/static/name" > <Property Name="Font" Value="DejaVuSans-10" /> <Property Name="MaxTextLength" Value="1073741823" /> <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> <Property Name="UnifiedAreaRect" Value="{{0.369242,0},{0.3771,0},{0.739005,0},{0.548438,0}}" /> </Window> <Window Type="TaharezLook/Editbox" Name="Root/logins/static/password" > <Property Name="MaxTextLength" Value="1073741823" /> <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> <Property Name="UnifiedAreaRect" Value="{{0.370188,0},{0.617992,0},{0.739951,0},{0.789331,0}}" /> </Window> </Window> <Window Type="TaharezLook/Button" Name="Root/logins/quit" > <Property Name="Font" Value="DejaVuSans-10" /> <Property Name="Text" Value="exit" /> <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> <Property Name="UnifiedAreaRect" Value="{{0.630493,0},{0.793219,0},{0.880493,0},{0.920019,0}}" /> </Window> <Window Type="TaharezLook/Button" Name="Root/logins/login" > <Property Name="Font" Value="DejaVuSans-10" /> <Property Name="Text" Value="login" /> <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> <Property Name="UnifiedAreaRect" Value="{{0.08582,0},{0.790217,0},{0.33582,0},{0.920245,0}}" /> </Window> </Window> </Window></GUILayout>
最后我直接用上一节中的代码
修改ExampleApp.cpp中代码:
//*************************************************************************************************************// 用.xml创建界面 mEditorGuiSheet = CEGUI::WindowManager::getSingleton().loadWindowLayout((CEGUI::utf8*)"TutoralGui.xml");mGUISystem->setGUISheet(mEditorGuiSheet);CEGUI::PushButton* quitButton=(CEGUI::PushButton*)CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)"Quit");setupEventHandlers();}void TutorialApplication::createFrameListener(void){mFrameListener = new GuiFrameListener(mWindow, mCamera, mGUIRenderer);mRoot->addFrameListener(mFrameListener);}void TutorialApplication::setupEventHandlers(void){CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();wmgr.getWindow((CEGUI::utf8*)"Quit")->subscribeEvent(CEGUI::PushButton::EventClicked,CEGUI::Event::Subscriber(&TutorialApplication::handleQuit, this));}
为:
// 用.xml创建界面 mEditorGuiSheet = CEGUI::WindowManager::getSingleton().loadWindowLayout((CEGUI::utf8*)"Login.layout");mGUISystem->setGUISheet(mEditorGuiSheet);CEGUI::PushButton* quitButton=(CEGUI::PushButton*)CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)"Root/logins/quit");setupEventHandlers();}void TutorialApplication::createFrameListener(void){mFrameListener = new GuiFrameListener(mWindow, mCamera, mGUIRenderer);mRoot->addFrameListener(mFrameListener);}void TutorialApplication::setupEventHandlers(void){CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();wmgr.getWindow((CEGUI::utf8*)"Root/logins/quit")->subscribeEvent(CEGUI::PushButton::EventClicked,CEGUI::Event::Subscriber(&TutorialApplication::handleQuit, this));}
最后效果:
- Ogre笔记十:CELayoutEditor 的使用方法
- OGRE -- Mesh的使用方法
- CELayoutEditor中控件上中文的显示
- OgreXMLConverter,CeguiMeshViewer,CELayoutEditor 0.6的安装后基本用法
- OgreXMLConverter,CeguiMeshViewer,CELayoutEditor 0.6的安装后基本用法
- Ogre笔记一:开始Ogre前的准备
- OGRE笔记
- ogre笔记
- OGRE笔记
- OGRE笔记
- Ogre笔记
- IOS学习笔记(十)之UIImageView图片视图的基本概念和使用方法
- Ogre笔记四:VS2008的快捷键
- 【笔记】OGRE改变LOD的函数
- 十种JavaScript事件处理的使用方法
- Ogre的API:Ogre::RenderOperation
- Ogre,Blender笔记
- OGRE学习笔记
- 相当好的.NET正则大全2
- HDOJ 1090 输入以特殊的n组为标记
- 几个很赞的BUTTON样式
- VC操作INI文件 ,INI文件操作总结,如何操作INI文件,INI文件使用方法小结
- sql server一些函数,记录下,以便查询
- Ogre笔记十:CELayoutEditor 的使用方法
- HDOJ 1092 scanf("%d",&n)&&n!=0
- 线程学习之Callable和Future
- 世界名酒介绍
- verilog实现乘法器
- HDOJ 1093
- Eclipse+Tomcat7简单使用
- HDOJ 1094
- 关于接口的多态性问题 接口的实现