使用 QPixmap 設定背景時,若圖片有黑邊且拉伸後比例失真,可透過 QPalette 與 QBrush 控制縮放模式:
QPixmap bg("./share/homeBG/defaultHomeBG.svg");
bg = bg.scaled(this->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
QPalette palette;
palette.setBrush(QPalette::Window, QBrush(bg));
this->setPalette(palette);或在 paintEvent 中繪製:
void HomeView::paintEvent(QPaintEvent *event) {
QPainter painter(this);
painter.drawPixmap(rect(), QPixmap(":/images/bg.png"));
}若圖片本身含黑邊,建議先用圖片編輯軟體裁切,或在程式中以 QPixmap::copy() 移除邊框後再縮放。
參考:CSDN 部落格