如何解决如何禁用 Qt 打印“QWidget::repaint: Recursive repaint detected”
我正在使用 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,pixmap);
painter.end();
return;
}
QPainter painter(this);
...
painter.end();
}
我知道在 grab()
中调用 paintEvent()
会导致递归,所以我使用一个变量来防止它。
它运行良好,但我在控制台中收到“QWidget::repaint: Recursive repaint detected”。太多了,向上滚动我的调试信息。
我曾尝试在我的 .pro 文件中添加 DEFInes += QT_NO_WARNING_OUTPUT
,但它不起作用。
我想知道是否可以禁用在控制台中打印消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。