0

我有一个 QWidget(基本上是一个 QComboBox),我设置了一个背景颜色(白色)。这个 QComboBox 有一个父小部件,它有一个背景图像。输出如下所示:

在此处输入图像描述

组合框不是完全白色的,并且对父 BG 图像有一些影响。我发布了这个问题,其中我使用了 QtCreator,它适用于提供的解决方案。

但是当我尝试使用相同的解决方案动态创建小部件时,BG 图像正在消失。

下面是我的代码:

MainWindow::MainWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::MainWindow)
{

QPixmap bkgnd("blue_bg.png");
bkgnd.scaled(this->size(), Qt::IgnoreAspectRatio);
QPalette palette;
palette.setBrush(QPalette::Background, bkgnd);
this->setPalette(palette);

QHBoxLayout* hbl = new QHBoxLayout(this);

QWidget *black = new QWidget;
black->setMaximumHeight(200);
black->setStyleSheet ("border-image:url(black_bg.png)");
//black->setStyleSheet ("QWidget#black{ border-image:url(black_bg.png)}");
//I tried this as per the link's answer but this hides/removes the black_bg.png image itself

hbl->addWidget(black);
f1(black);
}

void MainWindow::f1(QWidget *black)
{

QVBoxLayout *blackLayout = new QVBoxLayout(black);

QHBoxLayout *comboBoxLayout = new QHBoxLayout;

QLabel *comboBoxLabel = new QLabel("Label");
comboBoxLabel->setAttribute(Qt::WA_TranslucentBackground);
comboBoxLabel->setStyleSheet("color:white");
comboBoxLabel->setMaximumWidth(300);
comboBoxLabel->setAlignment(Qt::AlignTop);
comboBoxLayout->addWidget(comboBoxLabel);


QComboBox *comboBox = new QComboBox;
comboBox->addItem("String");
comboBox->setMaximumHeight(500);
comboBoxLayout->addWidget(comboBox);
blackLayout->addLayout(comboBoxLayout);

}
4

0 回答 0