【问题标题】:QWidget overrides Qscrollarea CSSQWidget 覆盖 Qscrollarea CSS
【发布时间】:2015-12-27 07:21:42
【问题描述】:

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

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

这是我当前的屏幕,我刚刚发现有人开发的原始 CSS 表有一个用于 Qwidget 的全局颜色设置,这种颜色正在许多小部件中呈现,但问题是它覆盖了 Scroll ,这使我无法更改左侧的颜色(请参见蓝点)

代码如下:

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

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

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

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

  2. 1234563被称为:QTabWidget / tabWidget。所以我不知道是不是因为我在代码中做错了什么并且没有使用正确的对象来更改颜色,或者 Qwidget 实际上覆盖了颜色(这让我感到困惑,因为我认为孩子总是覆盖父在 CSS 中)

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

【问题讨论】:

标签: qt qtstylesheets


【解决方案1】:

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

如果您不使用 Qt Creator,可以使用 QWidget::setObjectName("scrollArea"); 来设置小部件名称

【讨论】:

    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2019-11-22
    相关资源
    最近更新 更多