如何使背景PNG图像Alpha通道在QMainWindow中显示为透明
Posted
技术标签:
【中文标题】如何使背景PNG图像Alpha通道在QMainWindow中显示为透明【英文标题】:How to make background PNG image alpha channel show as transparent in QMainWindow 【发布时间】:2013-07-08 15:14:49 【问题描述】:也许有更好的方式来表达这个问题,但这是我目前能想到的最好的方式。反正问题就是这个。
我有一个 PNG 文件用作 QMainWindow 背景,我正在使用样式表设置它。 唯一的问题是给一个圆角,我在 png 文件中使用了 alpha 通道。
通道是透明的,但在它下面我看到灰色(而不是透明),这要归功于 QMainWindow。我尝试在样式表本身中将背景设置为透明,但后来它变成了黑色。
我是通过下面指定的方法设置的。
void MainWindow::setBackgroundImage(QString file)
QString sheet = QString("MainWindow border-image:url(%1); ").arg(file);
this->setStyleSheet(sheet);
(我尝试使用背景图像,但它不适合内容,所以我改用边框图像标签)。任何人都知道如何使 alpha 通道的区域看起来透明?
【问题讨论】:
可能和this有关?这是一篇旧帖子 - 取决于您使用的版本。 我是否正确假设您希望您的主窗口显示为背景图像的形状?所以没有框架,等等...... 【参考方案1】:你还应该设置:
QMainWindow::setAttribute(Qt::WA_TranslucentBackground, true);
【讨论】:
以上是关于如何使背景PNG图像Alpha通道在QMainWindow中显示为透明的主要内容,如果未能解决你的问题,请参考以下文章