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