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

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


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

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);
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值