Как поместить фон QWidget под другие виджеты в QGridLayout

Я часами пытался понять (погуглил), почему мои виджеты не отображаются в дочерних элементах QWidget, которые я использую в качестве Windows.

Дети в основном QLabel и некоторые QSliders. Макет является QGridlayout

вот часть моего кода окна:

FenPrincipale::FenPrincipale()
{
this->setWindowTitle("Premier Test");
this->resize(400, 200);
QPalette palette;
palette.setBrush(this->backgroundRole(), QBrush(QImage("images/metal400x200.png")));

this->setPalette(palette);
/*
this->setStyleSheet("background-image: url(images/metal400x200.png); ""background-position: top left; ""background-repeat: repeat-xy;");
*/

buildChildren();
buildLayout();

this->setLayout(layout_principale);
}

РЕДАКТИРОВАТЬ:

Как строятся мои дети

void FenPrincipale::buildChildren()
{
m_title = new QLabel("MonTest");
m_nextPageButton = new QLabel(">");

m_line = new QLabel("Slide here");
m_labelSlider = new QSlider;
m_result = new QLabel("Result");

/*
* Other children is set here...
*/
}

Вуаля результат:

введите описание изображения здесь

Я пытался изменить шрифты и другие методы, чтобы установить фон, но фон всегда отображается поверх других виджетов.

Я что-то пропустил?

0

Решение

Похоже, вы были близки к реализации таблицы стилей. Я получаю правильный результат со следующим:

setStyleSheet("QMainWindow { background-image: url(:/images/metal400x200.png) } ");
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]