Как добавить на задний фон заставку
Как добавить на задний фон заставку ? Хочу добавить на задний фон картинку .png в окне mainWindow и dialog. Как правильно это сделать?
Добавил код в styleSheet. QWidget{ background-image: url("/image/layer.png") no-repeat right bottom; }
Фон должен быть на заднем плане а тут получается что на каждом lable и graphicsview он отобразился.
Ответы (2 шт):
Пропишите 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; }
Если кому надо решение:
QPixmap bkgnd("./image/layer.png");
bkgnd = bkgnd.scaled(size(), Qt::IgnoreAspectRatio);
QPalette p = palette();
p.setBrush(QPalette::Background, bkgnd);
setPalette(p);


