Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从QTabWidget中使用osgViewer解除选项卡的锁定?_Qt_Tabs_Openscenegraph_Qtabwidget_Qdockwidget - Fatal编程技术网

如何从QTabWidget中使用osgViewer解除选项卡的锁定?

如何从QTabWidget中使用osgViewer解除选项卡的锁定?,qt,tabs,openscenegraph,qtabwidget,qdockwidget,Qt,Tabs,Openscenegraph,Qtabwidget,Qdockwidget,我想从设置为centralWidget的qtAbWidget中撤消QWidget。该选项卡包含一些打开的场景图内容OpenGL窗口。从列表中删除选项卡并将其放入新的对话框窗口=>从选项卡中取消链接时,场景数据似乎已损坏。它与标准小部件一起工作,但osg似乎忘记了场景 令人惊讶的是,当使用QDockWidget时,取消停靠会起作用。在取消停靠窗口后,场景是可见的 有人知道如何在不损坏osgViewer的情况下解开标签吗 从选项卡中取消锁定并显示在新对话框窗口中所调用的代码: QWidget* gv

我想从设置为centralWidget的qtAbWidget中撤消QWidget。该选项卡包含一些打开的场景图内容OpenGL窗口。从列表中删除选项卡并将其放入新的对话框窗口=>从选项卡中取消链接时,场景数据似乎已损坏。它与标准小部件一起工作,但osg似乎忘记了场景

令人惊讶的是,当使用QDockWidget时,取消停靠会起作用。在取消停靠窗口后,场景是可见的

有人知道如何在不损坏osgViewer的情况下解开标签吗

从选项卡中取消锁定并显示在新对话框窗口中所调用的代码:

QWidget* gv = // points to an osgViewer in a qt widget 
QDialog* dlg = new QDialog(this); 
dlg->setWindowTitle("hello earth"); 
QHBoxLayout* pMainLay = new QHBoxLayout; 
gv->setMinimumSize(100,100); 
gv->setGeometry(100,100,300,300); 
pMainLay->addWidget(gv); 
dlg->setLayout(pMainLay); 
ui->tabWidget->removeTab(0); // removes the tab at position 0 (docked window)
dlg->show(); // should show the undocked dialog
在新对话框中没有可查看的内容。我错过什么了吗?
如何将osg视图正确复制到新的小部件/对话框中?我应该为这种任务使用复合查看器吗?似乎甚至没有可见的空osg视图没有蓝色画布…

在从QTabWidget中删除osgViewer之前,将其添加到另一个小部件可能会出现问题。更改顺序可能会有所帮助

QWidget* gv = // points to an osgViewer in a qt widget 
ui->tabWidget->removeTab(0); // removes the tab at position 0 (docked window)
QDialog* dlg = new QDialog(this); 
dlg->setWindowTitle("hello earth"); 
QHBoxLayout* pMainLay = new QHBoxLayout; 
pMainLay->addWidget(gv); 
dlg->setLayout(pMainLay); 
dlg->show(); // should show the undocked dialog

在添加到布局之前,您是否尝试过将OSG QWidget显式地重新租入新的QDialog?当您删除调整大小的代码时会发生什么?我想这会弄乱OpenGL视图。只是一个想法-在从tab小部件中删除dlg之前或之后,尝试更改dlg的父级。@RobbieE是的,我做了。。。不成功。@Phlucious您所说的删除是什么意思?对于哪个控件?