您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

2021-06-30

Qt:用QPalette做背景和透明效果

  • 1 比如在mainwindow做背景
  • 2 比如给Widget设置透明

(项目需要做效果,参考了其他帖子顺便做下笔记,避免自己忘记~~)

1 比如在mainwindow做背景

1 可以用调色板QPalette

//利用调色板QPalette制作背景
    QPixmap pixmap = QPixmap(":/photo/background1.jpg").scaled(this->size());
    QPalette palette;
    palette.setBrush(QPalette::Background, QBrush(pixmap));
    this->setPalette(palette);

2 也可以重写paintEvent

//设置背景,重写paintEvent方式,重写自动执行
void MainWindow::paintEvent(QPaintEvent *)
{
    //重写自动执行
    QPixmap pixmap = QPixmap(":/photo/background1.jpg").scaled(this->size());
    QPainter painter(this);                        
    painter.drawPixmap(this->rect(), pixmap);      //画家画图片
}

3 背景的需求不同可以继续参考
前辈的链接: https://blog.csdn.net/qq_25800311/article/details/80874757.

2 比如给Widget设置透明

    //插入以下
    QPalette palette_mainMenu;
    palette_mainMenu.setColor(QPalette::Background, QColor(0,0,0,100)); // 最后一项为透明度
    //palette_mainMenu.setBrush(QPalette::Background, QBrush(QPixmap(":/photo/background1.jpg")));
    ui->widget->setPalette(palette_mainMenu);
    ui->widget->setAutoFillBackground(true);
    

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进