#include "cpushbuttontime.h" #include "ui_cpushbuttontime.h" CPushButtonTime::CPushButtonTime(QWidget *parent) : QWidget(parent), ui(new Ui::CPushButtonTime) { ui->setupUi(this); /* 注册事件过滤器 */ ui->label_icon->installEventFilter(this); ui->label_text->installEventFilter(this); } CPushButtonTime::~CPushButtonTime() { delete ui; } /* 设置文本 */ void CPushButtonTime::setText(const QString &text) { ui->label_text->setText(text); } /* 获取文本 */ QString CPushButtonTime::getText() const { return ui->label_text->text(); } /* 设置图标 */ void CPushButtonTime::setIcon(const QImage &icon) { if(icon.isNull()) { ui->label_icon->clear(); return; } QPixmap pixmap = QPixmap::fromImage(icon); ui->label_icon->setPixmap(pixmap); } /* 事件过滤器 */ bool CPushButtonTime::eventFilter(QObject *watched, QEvent *event) { if(event->type() == QEvent::MouseButtonPress) { /* 按钮被点击 */ emit signal_buttonClicked(); return true; // 事件已处理 } return QWidget::eventFilter(watched, event); // 继续传递事件 }