这可能是一个非常复杂的问题,但很多人都不知道答案,但我仍然会问。
我确实有QWindow派生类,带有重载的event(),它使用Backing store并用颜色填充整个窗口,比方说黑色。
现在我有了我的QT QML应用程序,当我创建窗口并将父设置为我的应用程序的主视图时,我将窗口大小设置为1x1px!这让我抓狂......
我通过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() - 我的错误, 重载函数事件,它使用事件UpdateRequested来绘制我的背景。
EDIT2: 这也是唯一的问题,当我设置父,没有父集我可以做我想用我的QWindow,它有自己的缓冲区。有点奇怪。