核心代码如下:
// 使用Qpainter显示图片
void PlayImageWidget::paintEvent(QPaintEvent *event)
{
if(!m_pixmap.isNull())
{
QPainter painter(this);
QPixmap pixmap = m_pixmap.scaled(this->size(), Qt::KeepAspectRatio); // 调整图片大小保持图片比例不变
// 计算中心点位置,图片居中
int x = (this->width() - pixmap.width()) / 2;
qDebug() << "x: " << x << "this->width(): " << this->width() << "pixmap.width(): " << pixmap.width();
int y = (this->height() - pixmap.height()) / 2;
qDebug() << "y: " << x << "this->height(): " << this->height() << "pixmap.height(): " << pixmap.height();
painter.drawPixmap(x, y, pixmap);
}
QWidget::paintEvent(event);
}
支持传入QImage和QPixmap,增加:加载图片、修改保存、删除文件、图片添加文字、翻转图片几个功能,适合需要查找API的小伙伴。