Qt繪圖(label上顯示圖片、顯示圖片+畫線)

在label上繪圖片:

方法一:
在label上直接調(diào)用setPixmap方法。

ui->lab_videoPlayer->setPixmap(QPixmap::fromImage(image));? ? //顯示圖片
ui->lab_videoPlayer->setScaledContents(true);????//label自適應大小

方法二:
①隨便重寫一個類,例如MyLabel類,繼承自 QWidget ,類中重寫paintEvent方法。
②重寫paintEvent方法用QPainter畫。
painter.drawImage(QPoint(x, y), image);?????//顯示圖片

class MyLabel: public QWidget
{
????Q_OBJECT
????public:
????? ? MyLabel(QWidget *parent);
? ????? ~MyLabel();
????protected:
????? ? void paintEvent(QPaintEvent *event);
}

MyLabel::MyLabel(QWidget *parent)
:? QLabel(parent)
{...}

void MyFFmpeg::paintEvent(QPaintEvent *event)
{
????QPainter painter(this);
m_painter. resize(width ,height);? ? ?//重要 ,注意繪圖窗口顯示不全的問題
????...
????painter.drawImage(QPoint(x, y), img);
}

//使用方法:創(chuàng)建MylLabel 對象,時傳入ui作為窗口。
MylLabel(ui.label);
resize(ui->lab_videoPlayer->size().width(), ui->lab_videoPlayer->size().height());
//適當位置處,修改繪圖類的尺寸,否則窗口不全。類似于窗口布局


在label上繪圖片后,在圖片上畫線:

方法一:在QImage圖片上畫線。

//上述方法一基礎上,重寫paintEvent方法
QPainter painter(&image);
painter.drawLine(0,0,600,600);

方法二:上述方法直接用,圖層一起顯示

painter.drawLine(0,0,600,600);?
painter.drawImage(QPoint(x, y), img);
...

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容