Qt 如何使背景PNG图像alpha通道在QMainWindow中显示为透明

Qt 如何使背景PNG图像alpha通道在QMainWindow中显示为透明,qt,background-image,stylesheet,qmainwindow,Qt,Background Image,Stylesheet,Qmainwindow,也许有更好的方式来表达这个问题,但这是目前我能想到的最好的方式。无论如何,问题是这样的 我有一个PNG文件用作QMainWindow背景,我正在使用样式表进行设置。 唯一的问题是给出一个圆角,我在png文件中使用了alpha通道 通道是透明的,但由于QMainWindow,在它下面我看到的是灰色(而不是透明)。我试着在样式表中将背景设置为透明,但后来它变成了黑色 我通过下面指定的方法进行设置 void MainWindow::setBackgroundImage(QString file) {

也许有更好的方式来表达这个问题,但这是目前我能想到的最好的方式。无论如何,问题是这样的

我有一个PNG文件用作QMainWindow背景,我正在使用样式表进行设置。 唯一的问题是给出一个圆角,我在png文件中使用了alpha通道

通道是透明的,但由于QMainWindow,在它下面我看到的是灰色(而不是透明)。我试着在样式表中将背景设置为透明,但后来它变成了黑色

我通过下面指定的方法进行设置

void MainWindow::setBackgroundImage(QString file)
{
    QString sheet = QString("MainWindow {border-image:url(%1); }").arg(file);
    this->setStyleSheet(sheet);
}
(我尝试使用背景图像,但它不适合内容,所以我使用边框图像标记)。有人知道如何使alpha通道的区域显示为透明吗?

您还应该设置:

QMainWindow::setAttribute(Qt::WA_TranslucentBackground, true);

也许这和你的关系?这是一篇老文章-取决于你使用的版本。我假设你希望你的主窗口显示为背景图像的形状,对吗?所以没有框架,等等。。。