Qt::CustomizeWindowint中断createWindowContainer?

Qt::CustomizeWindowint中断createWindowContainer?,qt,qml,qwidget,Qt,Qml,Qwidget,我需要在同一个应用程序窗口中使用QWidgets和QML。我能够用QWidget::createWindowContainer嵌入QML。但是,我还需要指定自定义窗口标志。 以前,在使用Qt Quick 2窗口时,这样做没有任何问题: qmlWindow()->setFlags((qmlWindow()->flags() | Qt::CustomizeWindowHint) & ~Qt::WindowTitleHint); 然而,当我这样做的时候 _window.show(

我需要在同一个应用程序窗口中使用QWidgets和QML。我能够用
QWidget::createWindowContainer
嵌入QML。但是,我还需要指定自定义窗口标志。 以前,在使用Qt Quick 2窗口时,这样做没有任何问题:

qmlWindow()->setFlags((qmlWindow()->flags() | Qt::CustomizeWindowHint) & ~Qt::WindowTitleHint);
然而,当我这样做的时候

_window.show();
QWindow *windowHandle = _window.windowHandle();
windowHandle->setFlags((windowHandle->flags() | Qt::CustomizeWindowHint) & ~Qt::WindowTitleHint);
在我的QWidget窗口中,仅呈现QWidget子视图,使用
QWidget::createWindowContainer
创建的QML子视图不呈现。它们应该在的地方只有空白。 是什么导致了这里的问题

鼠标点击在应该在的地方被检测到,“只是”显示器不在那里。控制台中没有警告消息

这种情况发生在OSX上,它在Windows上运行良好(至少在8.1上)


谢谢大家!

此问题似乎已在Qt 5.5.0中修复。

此问题似乎已在Qt 5.5.0中修复。

在显示窗口之前,您是否尝试过设置窗口标志?我知道OS X上的Qt中至少有一个bug与更改显示窗口的窗口标志有关-。感谢您的评论!是的,我已经试过了,但在这种情况下windowHandle()返回null。如果我使用QWidget::setWindowFlags()beofre show()设置它,它就不会做任何事情(没有视觉故障,但也不是预期的)。调用winId()而不是show()没有帮助,windowHandle()仍然返回null。我刚刚检查过,它在Windows上运行良好。如果它在Windows上运行良好,则更可能是Qt错误。为什么您要通过windowHandle()操作窗口标志,而不是直接在(QWidget)窗口上操作?首先尝试通过QWidget,它产生了描述的结果,然后我尝试通过windowHandle,这是相同的。在显示窗口之前,您试过设置窗口标志吗?我知道OS X上的Qt中至少有一个bug与更改显示窗口的窗口标志有关-。感谢您的评论!是的,我已经试过了,但在这种情况下windowHandle()返回null。如果我使用QWidget::setWindowFlags()beofre show()设置它,它就不会做任何事情(没有视觉故障,但也不是预期的)。调用winId()而不是show()没有帮助,windowHandle()仍然返回null。我刚刚检查过,它在Windows上运行良好。如果它在Windows上运行良好,则更可能是Qt错误。为什么您要通过windowHandle()操作窗口标志,而不是直接在(QWidget)窗口上操作?首先尝试通过QWidget,它产生了描述的结果,然后我尝试通过windowHandle,这是相同的。