osgwidget 代码案例
时间: 2024-01-22 13:03:32 浏览: 119
以下是一个简单的osgWidget代码示例,用于在OpenSceneGraph中创建一个包含按钮和文本标签的窗口:
```cpp
#include <osgWidget/WindowManager>
#include <osgWidget/Box>
#include <osgWidget/Label>
#include <osgWidget/Button>
int main()
{
// 创建窗口管理器
osgWidget::WindowManager* wm = new osgWidget::WindowManager(800, 600, osgWidget::WindowManager::WM_PICK_DEBUG);
// 创建一个包含按钮和文本标签的框
osgWidget::Box* box = new osgWidget::Box("My Box");
box->setOrigin(200, 200);
box->setColor(0.5f, 0.5f, 0.5f, 1.0f);
box->setPadding(10.0f);
box->setHorizAlign(osgWidget::Box::HA_LEFT);
box->setVertAlign(osgWidget::Box::VA_CENTER);
// 创建文本标签
osgWidget::Label* label = new osgWidget::Label("Hello, World!");
label->setColor(1.0f, 1.0f, 1.0f, 1.0f);
label->setFontSize(24.0f);
box->addWidget(label);
// 创建按钮
osgWidget::Button* button = new osgWidget::Button("Click Me!");
button->setPadding(5.0f);
button->setHorizAlign(osgWidget::Box::HA_CENTER);
button->setColor(0.75f, 0.75f, 0.75f, 1.0f);
button->setActiveColor(1.0f, 1.0f, 1.0f, 1.0f);
button->setHighlightColor(0.25f, 0.25f, 0.25f, 1.0f);
box->addWidget(button);
// 将框添加到窗口管理器中
wm->addChild(box);
// 运行窗口管理器
while (!wm->done())
{
wm->frame();
}
return 0;
}
```
这个示例创建了一个名为"My Box"的框,它包含一个文本标签"Hello, World!"和一个按钮"Click Me!"。窗口管理器将这个框添加到其子节点中,并在一个循环中运行,直到窗口管理器被关闭。
阅读全文