PlayerWidget.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "PlayerWidget.h"
  2. #include <QResizeEvent>
  3. PlayerWidget::PlayerWidget(QWidget *parent)
  4. {
  5. m_windowSize = QSize(0, 0);
  6. }
  7. PlayerWidget::~PlayerWidget()
  8. {
  9. }
  10. /* 刷新一帧 */
  11. void PlayerWidget::updateFrame(Image_YUV420& image)
  12. {
  13. m_image = image;
  14. if(m_windowSize.width() == 0 || m_windowSize.height() == 0)
  15. {
  16. m_windowSize.setWidth(image.width);
  17. m_windowSize.setHeight(image.height);
  18. }
  19. update();
  20. }
  21. /* 绘画事件 */
  22. void PlayerWidget::paintEvent(QPaintEvent *event)
  23. {
  24. // SPDLOG_TRACE("开始绘制画面...");
  25. /* 对图像进行缩放 */
  26. if(m_windowSize.width() != m_image.width || m_windowSize.height() != m_image.height)
  27. {
  28. m_image = m_image.scaled(m_windowSize.width(), m_windowSize.height(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
  29. }
  30. QPainter painter(this);
  31. painter.drawImage(0, 0, *m_image);
  32. }
  33. /* 重新设置大小事件 */
  34. void PlayerWidget::resizeEvent(QResizeEvent *event)
  35. {
  36. m_windowSize.setWidth(event->size().width());
  37. m_windowSize.setHeight(event->size().height());
  38. QWidget::resizeEvent(event);
  39. }