QT qss ID选择器不生效问题解决

读入qss文件代码:

static void setStyle(const QString& fileName)
    {
        QFile fileQss(fileName);
        fileQss.open(QFile::ReadOnly);
        qApp->setStyleSheet(fileQss.readAll());
        fileQss.close();
    }

当qss文件指定控件时不生效,在不指定控件时生效:

QLabel#Label {
    color: red;
}

用了ID选择器以后,将只会有这个ID对应的控件会产生样式效果。这个ID一般通过setObjectName指定的,像对这个QLabel进行设置,就必须在代码中加上Label->setObjectName ("Label");

但通常从Designer中命名好的控件不用特意加上setObjectName是因为在系统生成的ui头文件中已经帮你做了这件事儿了,所以在用的时候千万不能QLabel#ui->Label 这样,ui是命名控件,这样写是非法的。

你可能感兴趣的:(QT,qt,开发语言)