qt编程label显示图片,如何在图片上绘制相应图形呢?

2025-02-01 13:59:52
推荐回答(2个)
回答1:

  1. 先定义一个 QPixmap,在通过QPainter进行绘画。

  2. 例子如下:

    QPixmap pixmap(100, 100);

    QPainter paint(&pixmap);

    paint.drawLine(); // drawImage 等等各种draw开头的方法。

回答2:

继承QLabel呗

#include
#include

Label::Label(QWidget *parent) :

QLabel(parent)
{

isRelease = true;

point = QPoint(0, 0);

setScaledContents(true);
}

void Label::mousePressEvent(QMouseEvent *e)
{

point = e->pos();

isRelease = false;

update();
}

void Label::mouseMoveEvent(QMouseEvent *e)
{

point = e->pos();

isRelease = false;

update();
}

void Label::mouseReleaseEvent(QMouseEvent *)
{

isRelease = true;

update();
}

void Label::paintEvent(QPaintEvent *)
{

QPainter painter(this);

painter.drawPixmap(rect(),QPixmap("../123.jpg"));

if(!isRelease)

painter.drawEllipse(point,20,20);
}