Я отображаю информацию о потоке push-уведомлений OBS на объекте QMainWindow.Когда я изменяю размер окна QMainWindow, перетаскивая его мышью, окно мерцает;когда я перетаскиваю мышку (без изменения ее размера), окно не мерцает.Я проверил сообщение через spy ++ и обнаружил, что когда я меняю окно на flash, система генерирует сообщение WM_PAINT.как fllow введите описание изображения здесь Просматривая справочную документацию Qt, я переписал функцию nativeEvent;однако, когда я оцениваю сообщение WM_PAINT, WM_ERASEBKGND, программа попадает в бесконечный цикл
bool MainLayerItemWndView::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
MSG* msg = (MSG*)message;
switch (msg->message)
{
case WM_PAINT:
std::cout << "nativeEvent paint: " << "message handle1:" << std::endl;
*result = 1;
return true;
break;
case WM_ERASEBKGND:
*result = 1;
std::cout << "WM_ERASEBKGND :---------------" << std::endl;
return true;
break;
default:
break;
}
return QWidget::nativeEvent(eventType, message, result);
}
Когда я переписываю eventFilter для перехвата сообщения перерисовки, окно все еще мигает, и я вижу сообщение WM_PAINT в spy ++.Итак, что я должен делать, когда я изменяю размер окна QMainWindow (и OBS также будет выдвигать), окно не будет мигать?Или есть другой способ избежать этой проблемы?Большое спасибо.