warning.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef WARNING_H
  2. #define WARNING_H
  3. #include <QDialog>
  4. class OneShadow;
  5. namespace Ui {
  6. class Warning;
  7. }
  8. class Warning : public QDialog
  9. {
  10. Q_OBJECT
  11. public:
  12. explicit Warning(QWidget *parent = nullptr);
  13. ~Warning();
  14. /* 设置标题 */
  15. void setTitle(const QString& title, const QSize& size = QSize(120, 18));
  16. void setText(const QString& text);
  17. void setTextWithOneButton(const QString& text); /* 只有一个确定按钮 */
  18. bool isOk() const { return m_isOk; }
  19. /* 设置QSS */
  20. void setQSS(const QString& qssPath);
  21. signals:
  22. void signal_ok();
  23. protected:
  24. // void paintEvent(QPaintEvent *event) override;
  25. /* 事件过滤器 */
  26. bool eventFilter(QObject *watched, QEvent *event) override;
  27. /* 鼠标点击事件 */
  28. void mousePressEvent(QMouseEvent *event) override;
  29. /* 鼠标移动事件 */
  30. void mouseMoveEvent(QMouseEvent *event) override;
  31. /* 鼠标释放事件 */
  32. void mouseReleaseEvent(QMouseEvent *event) override;
  33. private slots:
  34. void do_ok();
  35. private:
  36. /* 重新设置显示文字的区域大小 */
  37. void resetLabelSize();
  38. /* 移动警告图标 */
  39. void moveWarnICON();
  40. private:
  41. Ui::Warning *ui;
  42. // OneShadow* m_shadow = nullptr;
  43. const int SHADOW_W = 16; /* 阴影的大小 */
  44. bool m_isOk = false;
  45. QPoint m_lastPos;
  46. };
  47. #endif // WARNING_H