如何给Qlabel添加clicked属性(覆盖mousePressEvent,处理QMouseEvent消息,反正是软绘制,想怎么样就怎么样)

clickedLabel.h

#ifndef CLICKLABEL_H
#define CLICKLABEL_H
#include <QLabel>
#include <QMouseEvent> class ClickLabel : public QLabel
{
Q_OBJECT
public:
explicit ClickLabel(QWidget *parent = 0);
~ClickLabel();
signals:
void clicked();//自定义clicked()信号,在mousePressEvent事件发生时触发
protected:
virtual void mousePressEvent(QMouseEvent* event);//重写mousePressEvent事件
}; #endif // CLICKLABEL_H

clickedLabel.cpp

#include "clicklabel.h"

ClickLabel::ClickLabel(QWidget* parent)
: QLabel(parent)
{
} ClickLabel::~ClickLabel()
{
} void ClickLabel::mousePressEvent(QMouseEvent *event)//重写mousePressEvent事件,检测事件类型是不是点击了鼠标左键
{
//如果单击了就触发clicked信号
if (event->button() == Qt::LeftButton) {
//触发clicked信号
emit clicked();
}
//将该事件传给父类处理
QLabel::mousePressEvent(event);
}

使用前把qlabel的类提升为ClickLabel 
如何给Qlabel添加clicked属性(覆盖mousePressEvent,处理QMouseEvent消息,反正是软绘制,想怎么样就怎么样) 
如何给Qlabel添加clicked属性(覆盖mousePressEvent,处理QMouseEvent消息,反正是软绘制,想怎么样就怎么样)


添加SLOT函数

private slots:
void clicklabel_clicked(); //定义槽函数处理label clicked

connect

 connect(ui->setrefresh_img_label, SIGNAL(clicked()), this, SLOT(clicklabel_clicked()));

如何给Qlabel添加clicked属性(覆盖mousePressEvent,处理QMouseEvent消息,反正是软绘制,想怎么样就怎么样)

 
 

http://blog.csdn.net/linbounconstraint/article/details/52414013

上一篇:jQuery Ajax异步处理Json数据详解


下一篇:centos 6.5 安装weixin