cpushbuttontime.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "cpushbuttontime.h"
  2. #include "ui_cpushbuttontime.h"
  3. CPushButtonTime::CPushButtonTime(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::CPushButtonTime)
  6. {
  7. ui->setupUi(this);
  8. /* 注册事件过滤器 */
  9. ui->label_icon->installEventFilter(this);
  10. ui->label_text->installEventFilter(this);
  11. }
  12. CPushButtonTime::~CPushButtonTime()
  13. {
  14. delete ui;
  15. }
  16. /* 设置文本 */
  17. void CPushButtonTime::setText(const QString &text)
  18. {
  19. ui->label_text->setText(text);
  20. }
  21. /* 获取文本 */
  22. QString CPushButtonTime::getText() const
  23. {
  24. return ui->label_text->text();
  25. }
  26. /* 设置图标 */
  27. void CPushButtonTime::setIcon(const QImage &icon)
  28. {
  29. if(icon.isNull())
  30. {
  31. ui->label_icon->clear();
  32. return;
  33. }
  34. QPixmap pixmap = QPixmap::fromImage(icon);
  35. ui->label_icon->setPixmap(pixmap);
  36. }
  37. /* 事件过滤器 */
  38. bool CPushButtonTime::eventFilter(QObject *watched, QEvent *event)
  39. {
  40. if(event->type() == QEvent::MouseButtonPress)
  41. {
  42. /* 按钮被点击 */
  43. emit signal_buttonClicked();
  44. return true; // 事件已处理
  45. }
  46. return QWidget::eventFilter(watched, event); // 继续传递事件
  47. }