16,216
社区成员
发帖
与我相关
我的任务
分享
class QImageLabel : public QLabel
{
Q_OBJECT
public:
QImageLabel(QWidget *parent = 0);
virtual ~QImageLabel();
protected:
void paintEvent(QPaintEvent *event);
void mousePressEvent(QMouseEvent *event);
private:
QPoint currentpos;
};
#include "QImageLabel.h"
#include <QtWidgets>
QImageLabel::QImageLabel(QWidget *parent):
QLabel(parent)
{
currentpos.setX(0);
currentpos.setY(0);
}
QImageLabel::~QImageLabel()
{
}
void QImageLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event); //需要调用父类的paintEvent事件,否则Label都无法绘制
QPainter painter(this);
painter.setPen(Qt::red);
painter.drawRect(currentpos.x() - 30, currentpos.y() - 30, 60, 60);
}
void QImageLabel::mousePressEvent(QMouseEvent *event)
{
currentpos = event->pos();
update();
}