QBackingStore::endPaint()被调用时,在backingstore绘图设备上有活动画笔。

10

我正在跟随这个教程将qml部署到Yocto上。我使用的是Beaglebone Black而不是Raspberry,但我认为这并不重要。当我在Beaglebone Black上运行命令"./QmlProject"时,出现了错误:

QBackingStore::endPaint() called with active painter on backingstore paint device

有人有解决这个问题的方案吗?或者有人有将QML部署到Yocto的解决方案吗?


你使用的Qt版本是什么? - Oleksandr Kravchuk
你好,Oleksandr Kravchuk,我已在QT5.10.1、5.11.1和5.9.1上进行了测试。 - Đại Ngoc
2
请问这个问题有任何更新吗?我在使用QT5.10.1部署到板子上时也遇到了同样的问题。 - sayo9394
不仅仅是嵌入式Linux的问题,我在一个安装了QT 5.12.9的完整RHEL系统上也遇到了这个问题。 - trumpetlicks
1个回答

0

当我在Linux上使用poppler渲染我的pdf文件时,我遇到了这个警告。

我的QT版本是5.11

我有一个文档查看器类,其中包含paint event方法。它获取QPaintEvent e(QPaintDevice),并使用painter和此设备调用RenderPages方法。 我的代码如下:

DocViewer.cpp

void DocViewer::paintEvent(QPaintEvent *e)
{
    qDebug()<<"cccc";
    QPainter* painter = new QPainter(this);

    m_IDocWidget->RenderPages(painter);
}

一个可能的解决方案是在渲染页面后结束绘图器。
void DocViewer::paintEvent(QPaintEvent *e)
{
    qDebug()<<"cccc";
    m_painter->begin(this);

    m_IDocWidget->RenderPages(m_painter);
    m_painter->end();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接