說明:本次實驗采用QPainter和QPalette兩種方法實現背景反走樣
方法一:
采用畫筆QPainter
//QPainter::Antialiasing 告訴繪圖引擎應該在可能的情況下進行邊的反鋸齒繪制 //QPainter::TextAntialiasing 盡可能的情況下文字的反鋸齒繪制 //QPainter::SmoothPixmapTransform 使用平滑的pixmap變換算法(雙線性插值算法),而不是近鄰插值算法
painter.setRenderHint(QPainter::Antialiasing, true);
方法二:
采用調色板QPalette
//不失真縮放方法
scaled(width,height,Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
//第一、二參數代表縮放后的尺寸,第三個參數代表忽略比例,也可調用IgnoreAspectRatio保持長寬比例,第四個參數代表平滑處理,使圖片縮小時不失真。
/* 設置背景圖片 */ QPixmap pixmap = QPixmap(QString::fromUtf8(":/image/Image/羅盤背景1.png"))\ .scaled(ui->qwtPlot->size(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation); QPalette palette; palette.setBrush(QPalette::Background, QBrush(pixmap));//backgroundRole() ui->qwtPlot->setStyleSheet(QString::fromUtf8("border:none;"));//去除邊框 ui->qwtPlot->setPalette(palette); ui->qwtPlot->setAutoFillBackground(true);
附加:去除控件邊框
ui->qwtPlot->setStyleSheet(QString::fromUtf8("border:none;"));//去除邊框