Как сделать так, чтобы в Qt фоновое изображение MainWindow не перекрывало дочерний виджет - PullRequest
0 голосов
/ 15 апреля 2020

Я сделал приложение в Qt. Просто для простоты, я пытаюсь добавить фон в приложение, добавив следующую таблицу стилей:

// in the stylesheet of "centralwidget"
background-image: url(:/background/assets/background/matrix.jpg)

Вместо того, что я ожидал (фоновое изображение идет позади виджетов), оно имеет переопределяет фон каждого виджета: С фоном

Без фонового изображения

1 Ответ

1 голос
/ 15 апреля 2020

при использовании таблицы стилей родительского виджета применяет ее ко всем дочерним элементам в qt: поэтому решение состоит в том, чтобы указать имя класса виджета: (например, для QFrame)

frame->setStyleSheet("QFrame{ background-image: url(image_path) }")

или, точнее, используйте widget->setObjectName("objectName"):

widget->setObejectName("objectName");
widget->setStyleSheet("#objectName{ background-image: url(image_path) }")
...