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



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

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

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

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

void MainWindow::setBackgroundImage(QString file)
{
    QString sheet = QString("MainWindow {border-image:url(%1); }").arg(file);
    this->setStyleSheet(sheet);
}

(我尝试使用背景图像,但它不适合内容,所以我使用了border-image标签)。有人知道我如何使alpha通道的区域看起来透明吗?

您还应该设置:

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

最新更新