简体   繁体   English

QWindow提示不起作用

[英]QWindow Hint doesn't work

I've tried to hide the bar of an QWindow object, but it doesn't work. 我试图隐藏QWindow对象的栏,但是它不起作用。 The aim is, to show a scene from Ogre3D over an QWindows object in a MDI Area. 目的是在MDI区域的QWindows对象上显示来自Ogre3D的场景。

This is the code in the MainWindow: 这是MainWindow中的代码:

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()));

And it looks like this Screenshot 它看起来像这样的截图

Does somebody know what is wrong? 有人知道哪里出问题了吗? Thank you for your support. 谢谢您的支持。

Okay, I've found it. 好的,我找到了。 When you are using the 当您使用

ui->side->addSubWindow(container);

command, you have to declare the WindowsFlag directly in addSubWindow. 命令,您必须直接在addSubWindow中声明WindowsFlag。 In my case this helps: Change: 就我而言,这有帮助:更改:

ui->side->addSubWindow(container)

to

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM