将背景纹理设置为我的osgWidget::帧
Set a background texture to my osgWidget::frame
正如标题中所述,我需要对osgWidget::框架的背景进行纹理化,无论我对它做什么,它都不会从默认的白色改变。。。
以下是我迄今为止所尝试的:
titleFrame= osgWidget::Frame::createSimpleFrameFromTheme(
"frame",
bgTexture,
5.0f,
5.0f,
osgWidget::Frame::FRAME_TEXTURE
);
titleFrame->getBackground()->setColor( osg::Vec4(1,1,1, 1) );
titleFrame->getBackground()->setTexture( new osg::Texture2D( bgTexture ) );
titleFrame->getBackground()->setTexCoordWrapHorizontal();
我试着把设定的颜色改成红色,但没有用。到目前为止,我找到的唯一解决方案是用一个空标签来填充它。问题是我需要这个框架能够滚动,并且我需要不断地添加和删除其中的项目,所以空标签解决方案不是很好。
此外,我曾尝试在更改背景设置前后将框架添加到窗口管理器中,但也不起作用。
我还应该提到,这个框架嵌入在osgWidget::Box中,不知道这是否会改变什么。
不管怎样,如果有人能解决这个问题,我将不胜感激。
(顺便说一句,有可能使小部件不可聚焦吗?)
我认为您需要在执行titleFrame->getBackground()->setTexture(image)
之前执行title->setFlags(osgWidget::Frame::FrameOptions
::FRAME_TEXTURE)
。
否则titleFrame->canTexture()
将返回false
。
//我这里没有环境来确认解决方案。
尝试使用titleFrame->getBackground()->setImage(image, true)
。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- cmake在我的项目中所需的所有静态库都不成功
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 为什么我的for循环不能正确获取argv
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 0-1背包代码中的错误.我的代码中有什么错误
- 当我的阵列太大时出现分段错误
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 为什么二进制搜索在我的测试中不起作用
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- OpenGL在启用深度测试时不会丢弃我的碎片
- 为什么我的 std::ref 无法按预期工作?
- clang整洁10忽略了我的NOLINT命令
- 将背景纹理设置为我的osgWidget::帧