#include "PlayerWidget.h" #include PlayerWidget::PlayerWidget(QWidget *parent) { m_windowSize = QSize(0, 0); } PlayerWidget::~PlayerWidget() { } /* 刷新一帧 */ void PlayerWidget::updateFrame(Image_YUV420& image) { m_image = image; if(m_windowSize.width() == 0 || m_windowSize.height() == 0) { m_windowSize.setWidth(image.width); m_windowSize.setHeight(image.height); } update(); } /* 绘画事件 */ void PlayerWidget::paintEvent(QPaintEvent *event) { // SPDLOG_TRACE("开始绘制画面..."); /* 对图像进行缩放 */ if(m_windowSize.width() != m_image.width || m_windowSize.height() != m_image.height) { m_image = m_image.scaled(m_windowSize.width(), m_windowSize.height(), Qt::KeepAspectRatio, Qt::SmoothTransformation); } QPainter painter(this); painter.drawImage(0, 0, *m_image); } /* 重新设置大小事件 */ void PlayerWidget::resizeEvent(QResizeEvent *event) { m_windowSize.setWidth(event->size().width()); m_windowSize.setHeight(event->size().height()); QWidget::resizeEvent(event); }