liyan 发表于 2016-1-20 10:41:19

osg与qt结合的一个问题

1.借鉴网上的一个写osg与qt的文档
//在这个控件的构造函数里,把widget用tab显示
osgQtWidget::osgQtWidget(osgViewer::ViewerBase::ThreadingModel threadingModel): QWidget(){
      
      QWidget* widget1 = addViewWidget( createCamera(0,0,100,100 ,false), osgDB::readNodeFile("cow.osg") );
      QVBoxLayout*grid=new QVBoxLayout;
        table=new QTabWidget;
//把widget放在一个qtWidget里,
        QHBoxLayout*qtWidget=new QHBoxLayout;
        qtWidget->addWidget(widget1);
//用setLayoutz,在table里面显示,是可以显示的。
        table->setLayout(qtWidget);
        grid->addWidget(table);
      table->setTabsClosable(true);
        setLayout( grid );
}


为了在table里面显示多页,我需要用addtab(),然后想把widget(就是那个可以显示cow.osg的控件)作为一个页面,所以想用
       QWidget *layoutWidget=new QWidget;
      QVBoxLayout*grid=new QVBoxLayout;
        table=new QTabWidget;
//把widget放在一个qtWidget里,
        QHBoxLayout*qtWidget=new QHBoxLayout;
        qtWidget->addWidget(widget1);
//用layoutwidget,包裹一个这个qtwidget,在table里面显示,显示不出来cow.osg。
        layoutwidget->addwidget(qtWidget);
        table->addT(layouwidget,"3D");
        grid->addWidget(table);
        setLayout( grid );
       

i简而言之        用layout可以显示出来,在用一个widget包裹layout就显示不出来了
       
这个问题应该怎么解决呢,各位大神,请指教

liyan 发表于 2016-1-20 19:43:14

有没有大神来指点一下,可以加扣扣,861045644,是不是说的清楚一些

liyan 发表于 2016-1-22 08:38:19

tab控件的这个显示sog的页面,大家应该也遇到过这样的问题吧,谁给我解答一下吧

yang 发表于 2016-1-25 15:32:22

你去参考一下显示相机上下文的设置,我以前遇到过这样的问题。OSG中代码例子在同一个页面中可以显示多个,但是遇到类似TabWidget的控件时,会遇到你说的这样的问题。

liyan 发表于 2016-2-20 15:33:44

yang 发表于 2016-1-25 15:32
你去参考一下显示相机上下文的设置,我以前遇到过这样的问题。OSG中代码例子在同一个页面中可以显示多个, ...

我找一下资料,谢谢

liyan 发表于 2016-2-22 10:37:21

yang 发表于 2016-1-25 15:32
你去参考一下显示相机上下文的设置,我以前遇到过这样的问题。OSG中代码例子在同一个页面中可以显示多个, ...

有个问题想问一下,显示cow.osg的控件,背景颜色的改变应该怎么实现呢?
在我自己的osgQt控件上就是
camera->setClearColor( osg::Vec4(0.5, 0.5, 0.5, 1.0) );
这里可以控制颜色。

我在另一个cpp文件中,调用osgQt::camera->setClearClor(.....);就出现错误



是不是这个函数用起来,有其他的限制
页: [1]
查看完整版本: osg与qt结合的一个问题