Как добавить на задний фон заставку

Как добавить на задний фон заставку ? Хочу добавить на задний фон картинку .png в окне mainWindow и dialog. Как правильно это сделать?

Добавил код в styleSheet. QWidget{ background-image: url("/image/layer.png") no-repeat right bottom; }

Фон должен быть на заднем плане а тут получается что на каждом lable и graphicsview он отобразился.

То что хочу видить

То что получилось


Ответы (2 шт):

Автор решения: Sergey Tatarincev

Пропишите stylesheet. изображение необходимо разместить в ресурс

пример:

мне надо было разместить фоном логотип в правый нижний угол виджета дерева. при этом надо было зафиксировать положение чтобы фон не двигался при скролле. в редакторе задал stylesheet:

QTreeView{
background: url(:/ico/background) no-repeat right bottom;
 background-size: cover;
background-attachment: fixed;
border-bottom-width: 5;
border-right-width: 15;
}

получилось так:

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

Дополнительно.

Следует помнить что стили наследуются на потомков (с учетом объектного наследования). Поэтому в вашем примере стиль для QWidget будет распространяться на всех потомков (поскольку все они являются наследниками QWidget). Чтобы этого избежать, задавайте стили для конкретных виджетов, а не для всего окна, либо указывайте конкретный класс: QTreeWidget, QFrame и т.п., либо используйте селекторы. Например:

QWidget[objectName="centralWidget"]{ background-image: url(":/img/bg") no-repeat right bottom; } 
QWidget[objectName="myFrame"]{ background-color: #ff0000; } 
QLineEdit{ background-color: #00ff00; } 
QWidget[enabled="false"]{ background-color: #0000ff; } 
→ Ссылка
Автор решения: zhilenkov

Если кому надо решение:

   QPixmap bkgnd("./image/layer.png");
   bkgnd = bkgnd.scaled(size(), Qt::IgnoreAspectRatio);
   QPalette p = palette();
   p.setBrush(QPalette::Background, bkgnd);
   setPalette(p);
→ Ссылка