说明:本次实验采用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;"));//去除边框