QWidget重写Qscrollarea CSS

时间:2015-09-29 17:32:40

标签: qt qtstylesheets

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

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

screenshot

这是我当前的屏幕,我刚刚发现由某人开发的原始CSS表格具有Qwidget的全局颜色设置,这种颜色在很多小部件中呈现,但问题是它覆盖了Scroll ,这阻止我改变左侧的颜色(请参见蓝点)

screenshot

这个代码是:

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

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

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

  1. 它删除了我所拥有的许多小部件的颜色,现在它都是白色的,现在我将不得不单独指定哪个让我担心,因为考虑到我的应用程序的大小,它不仅耗费时间,而且因为它有时它不起作用。

  2. 我还担心的是,我尝试为特定小部件指定背景颜色并且它不起作用,我已经尝试将占位符对象和类放在一起并分开--QDockWidget / QDockWidget以及真正的小部件被调用:QTabWidget / tabWidget。所以我不知道是不是因为我在代码中做错了而没​​有使用正确的对象来改变颜色,或者如果Qwidget实际上覆盖了颜色(这让我感到困惑,因为我认为那个孩子总是凌驾于父母之上在CSS)

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

1 个答案:

答案 0 :(得分:1)

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

enter image description here

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

设置小部件名称