如何在QT,label上加载的图片上画图。在网上查了查,需要子类化qlable,还有重载什么的,没看懂,
在ui中的lable_21中已经插入图片了,并且能够运行显示,怎样才能在图片上划线呢?感觉线被图片挡住了。苦恼了一个周末了,求大神来一份完整的代码。下面是在网上查到的。不...
在ui中的lable_21中已经插入图片了,并且能够运行显示,怎样才能在图片上划线呢?感觉线被图片挡住了。苦恼了一个周末了,求大神来一份完整的代码。
下面是在网上查到的。不靠谱
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void paintEvent(QPaintEvent *event);
private:
Ui::Widget *ui;
QPainter *painter;
};
class label_21 : public QLabel
{
void paintEvent(QPaintEvent *event);
};
void Widget::paintEvent(QPaintEvent *event)
{
ui->label_21->setPixmap(QPixmap("C:/Users/Administrator/Desktop/Projiect/QT5/Control/image.png"));
}
void label_21::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(QPaintEvent *event);
QPainter painter(this);
painter.setPen(QPen(Qt::green,3,Qt::SolidLine));
painter.drawLine(243,100,298,200);
}
还有这个。。。 展开
下面是在网上查到的。不靠谱
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void paintEvent(QPaintEvent *event);
private:
Ui::Widget *ui;
QPainter *painter;
};
class label_21 : public QLabel
{
void paintEvent(QPaintEvent *event);
};
void Widget::paintEvent(QPaintEvent *event)
{
ui->label_21->setPixmap(QPixmap("C:/Users/Administrator/Desktop/Projiect/QT5/Control/image.png"));
}
void label_21::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(QPaintEvent *event);
QPainter painter(this);
painter.setPen(QPen(Qt::green,3,Qt::SolidLine));
painter.drawLine(243,100,298,200);
}
还有这个。。。 展开
2个回答
展开全部
#ifndef CAMERAGROUPBOX_H
#define CAMERAGROUPBOX_H
#include <QImage>
class QPaintEvent;
class CameraWidget : public QLabel
{
Q_OBJECT
public:
CameraWidget(QWidget *parent=NULL);
~CameraWidget();
protected:
void paintEvent(QPaintEvent *event);
private:
QImage m_image;//绘画到界面的图像
};
#endif // CAMERAGROUPBOX_H
#include "CameraWidget.h"
#include <QPainter>
CameraWidget::CameraWidget(QWidget *parent)
: QLabel(parent)
{
m_image.load(":/Resources/cameraBk.jpg");//加载的需要画图的图片
}
CameraWidget::~CameraWidget()
{
}
void CameraWidget::paintEvent ( QPaintEvent * )
{
QPainter painter(this);
painter.drawImage(Rect(), m_image);
//在此处画线,从框架最左上角画线到最右下角
painter.drawLine(0,0,width(),height());
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询