weeklycodewidget.h 933 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef WEEKLYCODEWIDGET_H
  2. #define WEEKLYCODEWIDGET_H
  3. #include <QLabel>
  4. #include <QMutex>
  5. #include <QTimer>
  6. #include "models/downloader.h"
  7. class WeeklyCodeWidget : public QLabel
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit WeeklyCodeWidget(QWidget* parent = nullptr);
  12. protected:
  13. virtual void leaveEvent(QEvent * event) override;
  14. virtual void enterEvent(QEvent * event) override;
  15. virtual void paintEvent(QPaintEvent *event) override;
  16. virtual void mousePressEvent(QMouseEvent *ev) override;
  17. virtual void mouseReleaseEvent(QMouseEvent *ev) override;
  18. signals:
  19. void mouseEntered(QString tooltip);
  20. void mouseLeaved();
  21. public slots:
  22. void updateCode();
  23. private slots:
  24. void changeImageSrc(const QString& src);
  25. private:
  26. QMutex bg_lock;
  27. QString img_src;
  28. QPixmap current_bg;
  29. QByteArray code_data;
  30. QTimer code_update_timer;
  31. Downloader code_downloader;
  32. };
  33. #endif // WEEKLYCODEWIDGET_H