Qt在QLabel显示图片并绘制矩形框
时间: 2024-05-07 14:19:10 浏览: 276
在Qlabel上显示图片,并矩形图
可以通过QPainter在QLabel上绘制矩形框,以下是实现的步骤:
1. 加载图片并设置到QLabel上:
```
QPixmap pixmap("image.jpg");
ui->label->setPixmap(pixmap);
```
2. 重写QLabel的paintEvent()函数,在该函数中绘制矩形框:
```
void MyLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
// 绘制矩形框
QPainter painter(this);
painter.setPen(Qt::red);
painter.drawRect(10, 10, 50, 50);
}
```
完整的代码如下:
```
class MyLabel : public QLabel
{
Q_OBJECT
public:
explicit MyLabel(QWidget *parent = nullptr) : QLabel(parent) {}
~MyLabel() {}
protected:
void paintEvent(QPaintEvent *event) override
{
QLabel::paintEvent(event);
// 绘制矩形框
QPainter painter(this);
painter.setPen(Qt::red);
painter.drawRect(10, 10, 50, 50);
}
};
// 在主窗口中设置MyLabel控件并加载图片
QPixmap pixmap("image.jpg");
MyLabel *label = new MyLabel(this);
label->setPixmap(pixmap);
label->setFixedSize(pixmap.size());
label->show();
```
阅读全文