Qt 设置背景图片反走样两种方法

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

 

posted @ 2019-10-12 10:53  硕果磊磊  阅读(1225)  评论(0编辑  收藏  举报