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

时间:2013-07-08 15:14:49

标签: qt background-image stylesheet qmainwindow

也许有一种更好的方式来表达这个问题,但这是我现在想到的最好的方法。无论如何,问题就是这个。

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

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

我是通过下面指定的方法设置的。

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

(我尝试使用背景图片,但它不适合内容,所以我使用的是border-image标签)。任何人都知道我如何使alpha通道的区域显得透明?

1 个答案:

答案 0 :(得分:-1)

您还应该设置:

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