我正在使用 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 文件中添加,但它不起作用。
我想知道是否可以禁用在控制台中打印消息。