如何在 Qt 中使 MainWindow 的背景图像不覆盖子窗口小部件的

How to make it in Qt that the MainWindow's background image does not override child widget's

我用Qt做了一个应用。只是为了纯粹的酷,我正在尝试为应用程序添加背景, 通过添加以下样式表:

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

它已覆盖,而不是我所期待的(背景图像位于小部件后面) 每个小部件的背景: With background

Without background image

在父窗口小部件上使用样式表将其应用于 qt 中的所有子窗口小部件:
所以解决方案是指定小部件的 class 名称:
(例如 QFrame)

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

或更精确地使用 widget->setObjectName("objectName"):

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