CustomQDateTimeEdit.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef CUSTOMQDATETIMEEDIT_H
  2. #define CUSTOMQDATETIMEEDIT_H
  3. #include <QDateTimeEdit>
  4. #include <QObject>
  5. #include <QWidget>
  6. #include <QScopedPointer>
  7. #include <QObject>
  8. #include "settings/OtherSettings/dialog/DialogEditValue.h"
  9. /**
  10. * @class CustomQDateTimeEdit
  11. * @brief CustomQDateTimeEdit 是一个自定义的 QDateTimeEdit 控件,它允许用户通过对话框编辑日期和时间值。
  12. *
  13. * 这个类继承自 QDateTimeEdit,并添加了一个事件过滤器,用于在用户点击控件时显示一个对话框,让用户编辑日期和时间值。
  14. *
  15. * @note 使用这个类时,需要确保 Qt 库已经正确安装和配置。
  16. *
  17. * @param parent 指向父控件的指针,如果为 nullptr,则此控件没有父控件。
  18. *
  19. * @example
  20. * 下面是一个简单的示例,展示了如何使用 CustomQDateTimeEdit 控件:
  21. *
  22. * @code
  23. * QWidget *parentWidget = new QWidget;
  24. * CustomQDateTimeEdit *customDateTimeEdit = new CustomQDateTimeEdit(parentWidget);
  25. * customDateTimeEdit->setDateTime(QDateTime::currentDateTimeUtc());
  26. * @endcode
  27. */
  28. class CustomQDateTimeEdit : public QDateTimeEdit
  29. {
  30. Q_OBJECT
  31. public:
  32. /**
  33. * @brief 构造函数,创建一个 CustomQDateTimeEdit 对象。
  34. *
  35. * @param parent 指向父控件的指针,如果为 nullptr,则此控件没有父控件。
  36. */
  37. explicit CustomQDateTimeEdit(QWidget *parent = nullptr);
  38. /**
  39. * @brief 析构函数,销毁 CustomQDateTimeEdit 对象。
  40. */
  41. ~CustomQDateTimeEdit();
  42. protected:
  43. /**
  44. * @brief 事件过滤器,用于处理自定义事件。
  45. *
  46. * @param obj 发生事件的 QObject 对象。
  47. * @param event 发生的事件。
  48. *
  49. * @return 如果事件被处理,则返回 true;否则返回 false。
  50. */
  51. bool eventFilter(QObject *obj, QEvent *event) override;
  52. private:
  53. /**
  54. * @brief 指向一个 DialogEditValue 对象的指针,用于显示对话框编辑日期和时间值。
  55. */
  56. QScopedPointer<DialogEditValue> m_input_dialog;
  57. };
  58. #endif // CUSTOMQDATETIMEEDIT_H