QLabel添加Click信号

使用自定义label来实现此功能

其他控件可参照此例。

 

#include "customerqlabel.h"
CustomerQlabel::CustomerQlabel(QWidget *parent, Qt::WindowFlags f):
    QLabel(parent,f)
{
}
CustomerQlabel::CustomerQlabel(const QString &text, QWidget *parent, Qt::WindowFlags f):
    QLabel(text,parent,f)
{
}
void CustomerQlabel::mouseReleaseEvent(QMouseEvent * ev)
{
    Q_UNUSED(ev)
    emit clicked();
}

 

#ifndef CUSTOMERQLABEL_H
#define CUSTOMERQLABEL_H
#include <QLabel>

class CustomerQlabel : public QLabel
{
    Q_OBJECT
public:
    explicit CustomerQlabel(QWidget *parent=0, Qt::WindowFlags f=0);
    explicit CustomerQlabel(const QString &text, QWidget *parent=0, Qt::WindowFlags f=0);
protected:
    /*!
      由Qt自己调用的鼠标事件处理函数,在此发射clicked信号
    */
    virtual void mouseReleaseEvent(QMouseEvent * ev);
signals:
    void clicked(void);
};
#endif // CUSTOMERQLABEL_H

 

posted @ 2017-12-09 13:29  风来风往风伤(TiAmo)  阅读(2146)  评论(0编辑  收藏  举报