【问题标题】:Losing style when adding specificity to a Qt stylesheet向 Qt 样式表添加特异性时丢失样式
【发布时间】:2015-02-17 20:19:57
【问题描述】:

这是我的代码:

const QString STYLE_SHEET = "background-color: rgba(x,x,x,y);"
                            "border: 1px solid gray;"
                            "border-radius: 0px;"
                            "border-top: 1px solid red;"
                            "border-bottom: 1px solid blue;"
                            "border-radius: 0px;";

SS 稍后在代码中应用如下:

QWidget * myWidget;
myWidget = new QWidget(parent);
myWidget.setObjectName("myWidgetName");
myWidget.setStyleSheet(STYLE_SHEET);

除了边框渗入子 QFrame 之外,它的工作原理就像一个冠军。如果我通过用以下括号括起来来为 STYLE_SHEET 添加特异性:

const QString QWidget#myWidgetName { }

STYLE_SHEET 不再适用。它解决了孩子 QFrame 的问题,但我的 QWidget 失去了它的风格。没有样式的 QWidget 有什么用?

【问题讨论】:

    标签: c++ qt qt-creator stylesheet


    【解决方案1】:
    const QString STYLE_SHEET = "QWidget#myWidgetName {\n"
                                "    background-color: rgba(x,x,x,y);\n"
                                "    border: 1px solid gray;\n"
                                "    border-radius: 0px;\n"
                                "    border-top: 1px solid red;\n"
                                "    border-bottom: 1px solid blue;\n"
                                "    border-radius: 0px;\n"
                                "}\n";
    

    【讨论】:

    • 感谢您的回答,但您能解释一下 \n 是如何解决问题的吗?不要误会我的意思,我会试试的。只是我想确切地知道我在做什么。
    • 我尝试使用 \n 没有成功。还有其他想法吗?
    • "\n" 只是装饰。 QWidget#myWidgetName 是最重要的。自从你写了类似const QString QWidget#objectName 的东西后,我就写了这个。我认为这正是您在样式表中所拥有的,这是错误的(样式表中的名称也与对象名称格式代码不匹配)!
    • 好吧,这是我的错误。我输入的 objectName 不正确。我修好了它。我回到了我原来的问题。样式表不适用。
    猜你喜欢
    • 2014-06-22
    • 2015-08-05
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 2021-09-03
    • 2012-07-07
    • 2012-09-05
    相关资源
    最近更新 更多