想把QLabel中傳入的方形圖片切成原型顯示,嘗試用樣式表寫圓角能完成純背景色切成圓形顯示,但是不能將圖片切成圓形。
於是上網搜尋答案,找到了解決我疑惑的帖子
貼代碼
QPixmap L::PixmapToRound(QPixmap &src, int radius)
{
if (src.isNull()) {
return QPixmap();
}
QSize size(2 * radius, 2 * radius);
QBitmap mask(size);
QPainter painter(&mask);
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::SmoothPixmapTransform);
painter.fillRect(0, 0, size.width(), size.height(), Qt::white);
painter.setBrush(QColor(0, 0, 0));
painter.drawRoundedRect(0, 0, size.width(), size.height(), 99, 99);
QPixmap image = src.scaled(size);
image.setMask(mask);
return image;
}
//使用方法 圖片56*56
QPixmap pixmap_userIcon;
pixmap_userIcon.load(":/png/images/t_head.png");
QPixmap fitpixmap_userIcon = pixmap_userIcon.scaled(56, 56, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
fitpixmap_userIcon = PixmapToRound(fitpixmap_userIcon, 28);
m_ui.label_photo->setPixmap(fitpixmap_userIcon);