widget.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "widget.h"
  2. #include "./ui_widget.h"
  3. #include <QTimer>
  4. #include "spdlog/spdlog.h"
  5. #include "OpenGLWidgetAPI.h"
  6. Widget::Widget(QWidget *parent)
  7. : QWidget(parent)
  8. , ui(new Ui::Widget)
  9. {
  10. ui->setupUi(this);
  11. loadOpenGLWidgetLibrary(); // 加载OpenGL窗口库
  12. m_playerGLWidget = createOpenGLWidget(ui->widget_display);
  13. m_playerGLWidget->show(); // 显示OpenGL窗口
  14. m_playerGLWidget->setGeometry(0, 0, ui->widget_display->width(), ui->widget_display->height());
  15. m_playerGLWidget->setStyleSheet(R"(border-radius:10px;)");
  16. /* 设置背景颜色 */
  17. this->setAutoFillBackground(true);
  18. QPalette palette = m_playerGLWidget->palette();
  19. palette.setColor(QPalette::Window, Qt::black); // 设置背景颜色为黑色
  20. this->setPalette(palette);
  21. connect(&m_timer, &QTimer::timeout, this, [&]() {
  22. // SPDLOG_DEBUG("刷新一帧");
  23. QImage image = QImage(":/image/1.jpg");
  24. if(image.isNull()) {
  25. SPDLOG_WARN("Image is null, cannot refresh.");
  26. return;
  27. }
  28. refreshRGBAImage(m_playerGLWidget, image); // 显示一张测试图片
  29. });
  30. m_timer.setSingleShot(false);
  31. m_timer.start(10); // 60 FPS
  32. }
  33. Widget::~Widget()
  34. {
  35. delete ui;
  36. }
  37. void Widget::resizeEvent(QResizeEvent *event)
  38. {
  39. if (m_playerGLWidget) {
  40. m_playerGLWidget->setGeometry(0, 0, ui->widget_display->width(), ui->widget_display->height());
  41. }
  42. QWidget::resizeEvent(event);
  43. }