C++ 如何绘制到";父TLW支持存储“;?

C++ 如何绘制到";父TLW支持存储“;?,c++,qt,window,raster,qnx,C++,Qt,Window,Raster,Qnx,这可能是一个非常复杂的问题,很多人不知道答案,但我还是会问 我确实有一个QWindow派生类,带有重载的event(),它使用后台存储并用颜色填充整个窗口,比如说黑色 现在我有了我的QT QML应用程序,当我创建窗口并将父视图设置为应用程序的主视图时,我将窗口大小设置为1x!这快把我逼疯了 我翻阅了QT源代码,发现: void QQnxRasterWindow::adjustBufferSize() { // When having a raster window we don't need a

这可能是一个非常复杂的问题,很多人不知道答案,但我还是会问

我确实有一个QWindow派生类,带有重载的event(),它使用后台存储并用颜色填充整个窗口,比如说黑色

现在我有了我的QT QML应用程序,当我创建窗口并将父视图设置为应用程序的主视图时,我将窗口大小设置为1x!这快把我逼疯了

我翻阅了QT源代码,发现:

void QQnxRasterWindow::adjustBufferSize()
{
// When having a raster window we don't need any buffers, since
// Qt will draw to the parent TLW backing store.
const QSize windowSize = window()->parent() ? QSize(1,1) : window()->size();
if (windowSize != bufferSize())
   setBufferSize(windowSize);
}

void QQnxRasterWindow::setParent(const QPlatformWindow *wnd)
{
    QQnxWindow::setParent(wnd);
    adjustBufferSize();
}
这是有点糟糕,因为我不知道我该如何使用TLW和画到我的窗口了。 有什么想法吗

首先什么是TLW? 第二,我如何画进父TLW的方式,它将结束在我的窗口缓冲区

多谢各位

QT 5.3.1

编辑: 不是renderNow()-我错了, 重载函数event,它使用event UpdateRequested绘制我的背景

编辑2:
另外,这是唯一的问题,当我设置了父项,当没有父项设置时,我可以用我的QWindow做任何我想做的事情,它有自己的缓冲区。有点奇怪。

我想TLW在这里的意思是顶级小部件。IIRC,在Qt的implforqnx/libscreen中,进程的所有Qt窗口共享一个公共缓冲区,因此子窗口不需要自己的缓冲区。我假设您的QWindow派生类打破了Qt/QNX所基于的一些假设。(什么是“重载renderNow()”指的是什么?我在QWindow中看不到这一点)您正在使用哪些QNX/libscreen版本?您想做什么?为什么?难道
QPaintDeviceWindow
不做你想做的吗?…你想用你的定制QWindow实现什么?如果它只与QML视图(QQuickView?@Frankosterfield)一起工作,我做了更正,我说的是event()函数,我试图用窗口组创建新窗口,以便其他进程窗口加入,此窗口应具有特定背景,也必须是光栅窗口,不使用任何EGL内容,并尽可能轻,QQuickView和QuickWindow很重。我不想详细说明这一点,因为这可能是一个老鼠洞来解释,但这是我想做的:)*“Qt/QNX基于”应读“窗口和渲染的Qt/QNX实现基于”