如何在QT中将QMDIArea背景设置为透明?

时间:2018-01-23 12:24:09

标签: qt

我有QMDIArea,在里面我添加了一个QMDISubWindow。我需要QMDIArea完全透明。默认情况下,它以灰色显示。

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QMdiArea area = new QMdiArea();
    area->setStyleSheet("background:transparent;");
    area->setAttribute(Qt::WA_TranslucentBackground);
    this->setCentralWidget(area);

    MyChildScreenDialog *dlg = new MyChildScreenDialog ();
    area->addSubWindow(dlg );
}

但不幸的是,设置背景:transaprent和设置属性Qt :: WA_TranslucentBackground在QMdiArea中无法工作。

我们可以让QMdiArea透明吗?我们需要在上面的代码中进行哪些修改?

2 个答案:

答案 0 :(得分:0)

我可以通过以下代码解决此问题。

area->setBackground(QBrush(Qt::transparent));

答案 1 :(得分:0)

仅使用QSS,这是方法:

qproperty-background: transparent;