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: Recursive repaint detected」というメッセージが表示されます。多すぎて、デバッグ情報を上にスクロールします。
.pro ファイルに追加しようとDEFINES += QT_NO_WARNING_OUTPUT
しましたが、機能しません。
コンソールでメッセージの出力を無効にできるかどうかを知りたいです。