cornerlampwidget.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "cornerlampwidget.h"
  2. #include <QPainter>
  3. #include <QDebug>
  4. CornerLampWidget::CornerLampWidget(QWidget *parent) : QOpenGLWidget(parent)
  5. {
  6. pixLeftCorner.load(":/images/LeftCornerActivited.png");
  7. pixRightCorner.load(":/images/RightCornerAcitivated.png");
  8. pixCornerLampBg.load(":/images/CornerLampBg.png");
  9. timer = new QTimer(this);
  10. timer->setInterval(500);
  11. QObject::connect(timer, &QTimer::timeout, this, &CornerLampWidget::onTimeout);
  12. timer->start();
  13. }
  14. CornerLampWidget::~CornerLampWidget()
  15. {
  16. delete timer;
  17. delete leftCorner;
  18. delete rightCorner;
  19. }
  20. void CornerLampWidget::initializeGL()
  21. {
  22. initializeOpenGLFunctions();
  23. glClearColor(0.0,0.0,0.0,0.0);
  24. glBlendFunc(GL_SRC_ALPHA,GL_ONE);
  25. glEnable(GL_BLEND);
  26. }
  27. void CornerLampWidget::resizeGL(int width, int height)
  28. {
  29. }
  30. void CornerLampWidget::paintGL()
  31. {
  32. static bool flag = true;
  33. QPainter painter;
  34. painter.begin(this);
  35. painter.setRenderHint(QPainter::SmoothPixmapTransform,true);
  36. painter.drawPixmap(0, 0, 400, 52, pixCornerLampBg);
  37. if (flag) {
  38. painter.drawPixmap(0, 0, 68, 52, pixLeftCorner);
  39. painter.drawPixmap(304, 0, 68, 52, pixRightCorner);
  40. }
  41. painter.setRenderHint(QPainter::SmoothPixmapTransform,false);
  42. painter.end();
  43. flag = !flag;
  44. }
  45. //void CornerLampWidget::paintEvent(QPaintEvent *e)
  46. //{
  47. // qDebug() << "CornerLampWidget::paintEvent";
  48. //}
  49. void CornerLampWidget::onTimeout()
  50. {
  51. update();
  52. }