0

我正在使用 Qt6.1,我想在绘制时发送我的小部件的像素图。
我有类似的代码:

void MyWidget::paintEvent(QPaintEvent*)
{
//    static bool callGrab = true;
    // m_callGrab initialize with true
    if (m_callGrab)
    {
        m_callGrab = false;
        auto pixmap = grab();
        m_callGrab = true;
        emit widgetRepainted(pixmap);
        QPainter painter(this);
        painter.drawPixmap(0, 0, pixmap);
        painter.end();
        return;
    }

    QPainter painter(this);
    ...
    painter.end();

}

我知道调用grab()paintEvent()导致递归,所以我使用一个变量来防止它。
它运作良好,但我在控制台中得到“QWidget::repaint:检测到递归重绘”。它太多了,并且向上滚动了我的调试信息。
我已经尝试DEFINES += QT_NO_WARNING_OUTPUT在我的 .pro 文件中添加,但它不起作用。
我想知道是否可以禁用在控制台中打印消息。

4

0 回答 0