QWidget 覆盖 Qscrollarea CSS

QWidget overrides Qscrollarea CSS

我正在尝试在 QT 中实现一个复杂的 UI 并进行大量自定义。

这就是我想要实现的(photoshop 文件)

这是我现在的画面,我刚刚发现原来有人开发的CSS sheet Qwidget 有一个全局颜色设置,这个颜色在很多widgets中渲染,但问题是它覆盖了 Scroll,这使我无法更改左侧的颜色(请看蓝点)

这个代码是:

QWidget {
    background-color: #1a1d21; /* software canvas background color  */
    border: 0px solid black;
}

QScrollArea {
    background-color: #262a30;
    border: 1px solid black;
}

我尝试删除 CSS 中影响 Qscrollarea 的 QWidget 的颜色代码,并且选择的颜色被正确渲染,但出现了一些问题:

  1. 它删除了我拥有的许多小部件的颜色,现在全是白色,现在我必须单独指定这让我担心,因为考虑到我的应用程序的大小,这不仅耗时但也因为它有时不起作用。

  2. 同样让我担心的是,我尝试为特定的小部件指定背景颜色但它没有用,我试过占位符 object 和 class 在一起并分开 - QDockWidget / QDockWidget 以及被调用的真实小部件:QTabWidget / tabWidget。所以我不知道是不是因为我在代码中做错了,没有使用正确的 object 来更改颜色,或者 Qwidget 是否实际上覆盖了颜色(这让我感到困惑,因为我认为child 总是覆盖 CSS)

  3. 中的 parent

注意:我是 Qt 和编程方面的设计师和新手。

您可以为每个 Qt 小部件提供一个唯一的名称。然后您可以使用该名称在样式表中设置所需的小部件样式 (CSS)

如果您不使用 Qt Creator,可以使用 QWidget::setObjectName("scrollArea");

设置小部件名称