NailLabel.h
class NailLabel: public QLabel
{
Q_OBJECT
public:
NailLabel(QWidget * parent = 0);
private:
protected:
virtual void mouseReleaseEvent(QMouseEvent * ev);
virtual void mousePressEvent(QMouseEvent *ev);
virtual void mouseMoveEvent(QMouseEvent *ev);
virtual void mouseDoubleClickEvent(QMouseEvent *ev);
signals:
void clickedRelease(void);
void clickedPress(void);
void clickedMove(void);
void clickedDouble(void);
}; NailLabel.cpp NailLabel::NailLabel(QWidget *parent){
}
void NailLabel::mouseReleaseEvent(QMouseEvent *ev){
Q_UNUSED(ev)emit clickedRelease();}
void NailLabel::mousePressEvent(QMouseEvent *ev){
Q_UNUSED(ev)emit clickedPress();}
void NailLabel::mouseMoveEvent(QMouseEvent *ev){
Q_UNUSED(ev)emit clickedMove();}
void NailLabel::mouseDoubleClickEvent(QMouseEvent *ev){
Q_UNUSED(ev)emit clickedDouble();} a.h ... NailLabel *m_btnNail; a.cpp ... QString appPath = QApplication::applicationDirPath();m_btnNail = new NailLabel(this);QString iconPath = appPath+ "/icons/a.png";QImage btnNailIcon(iconPath);m_btnNail->setPixmap(QPixmap::fromImage(btnNailIcon));m_btnNail->setFixedHeight(m_btnNailWidth);m_btnNail->setFixedWidth(m_btnNailHeight);connect(m_btnNail,SIGNAL(clickedRelease()),this,SLOT(sltBtnNailClickedEvent()));