如何使背景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中显示为透明的主要内容,如果未能解决你的问题,请参考以下文章

如何检查加载到 FMX.TBitmap 的 PNG 图像是不是具有 alpha 通道?

如何在png里删除alpha通道

删除图像中的 Alpha 通道

怎样使用Alpha通道使png图片透明

OpenCV - 如何检测带有 alpha 通道的标记

使用 FPDF (PHP) 插入带有 alpha 通道的 PNG