У меня есть 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);
}
black->setObjectName("black");
передblack->setStyleSheet("QWidget#black{ border-image:url(black_bg.png)}");
- person eyllanesc   schedule 09.08.2018""
, если вы используете Qt Designer, вы можете увидеть его в свойствах, просто прочитайте документы, там много примеров. - person eyllanesc   schedule 09.08.2018