Есть ли другой лучший подход - PullRequest
0 голосов
/ 06 июля 2019

QT Paintevent не рисует нужное изображение, а закрашивает черный экран.этот painttevent вызывается для каждого временного интервала в 2 секунды с использованием SLOT (обновление).

Я пытался запустить метод PaintImage, который реализован для рисования предоставленного QImage, но тоже не работал.

void Client::paintEvent(QPaintEvent *event)
{

        //qWarning() << image.isNull() << image.width()<< image.height();
        QPainter painter(&image);
        painter.end();
        QPixmap pixMap;//(image);
        //painter.drawImage(1280, 639, image);
        bool b = pixMap.convertFromImage(image);
        QLabel w;
        w.setPixmap(pixMap);
        w.show();
}

Ожидаемое фактическое изображение, которое будет отображаться, но в конечном итоге будет пустым экраном.

1 Ответ

1 голос
/ 06 июля 2019

Добавить QLabel в качестве члена класса (клиента) ... давайте дадим ему имя m_my_label. Затем в paintEvent, скажем, просто m_my_label.setPixmap (pixMap) и m_my_label.show ().

Проблема в том, что QLabel является локальной переменной и перестает существовать, когда вы выходите из функции paintEvent.

...