2016-12-21 48 views
0

我试图隐藏QWindow对象的栏,但它不起作用。 的目的是,通过Ogre3D在MDI区域中的QWindows对象上显示一个场景。QWindow提示不起作用

这是在主窗口中的代码:

ui->setupUi(this); 
QWindow *pcwindow = new QWindow(); 
pcwindow->setHeight(ui->side->height()); 
pcwindow->setWidth(ui->side->width()); 
pcwindow->setFlags(Qt::Window | Qt::CustomizeWindowHint); 
pcwindow->setFlags(Qt::Window | Qt::FramelessWindowHint); 
app = new TutorialApplication; 
try 
{ 
    app->Windowheight = pcwindow->height(); 
    app->Windowwidth = pcwindow->width(); 
    app->WindowsID = pcwindow->winId(); 
    app->go(); 
}catch(Ogre::Exception& e) { 
      ... 
     } 

QWidget *container = QWidget::createWindowContainer(pcwindow); 
container->setMinimumHeight(pcwindow->height()); 
container->setMinimumWidth(pcwindow->width()); 
container->setWindowFlags(Qt::SubWindow | Qt::CustomizeWindowHint); 
ui->side->addSubWindow(container); 

QTimer *timer = new QTimer(this); 
timer->setInterval(10); 
timer->start(); 
connect(timer, SIGNAL (timeout()), app, SLOT (RenderOneFrame())); 

而且它看起来像这样Screenshot

是否有人知道什么是错?感谢您的支持。

+0

你想有一个无框窗? –

+0

是的,但我找到了解决方案:) –

回答

1

好的,我找到了。当您使用

ui->side->addSubWindow(container);

命令,你必须直接在addSubWindow声明WindowsFlag。在我的情况下,这可以帮助: 变化:

ui->side->addSubWindow(container)

ui->side->addSubWindow(container,Qt::SubWindow | Qt::FramelessWindowHint);