如何使用Qt全球加载样式表(.qss样式资源)?

我试图让事情更有效:

middleIntText -> setStyleSheet("QLineEdit {  border: 1px solid gray;
                                border-radius: 5px;padding: 0 8px;
                                selection-background-color:darkgray;
                                height:40px;font-size:15px;}");
.

我认为以下将在加载qlineedit的所有qlineedit小部件时工作:

qss文件:

QLineEdit {     border: 1px solid gray;
                border-radius: 5px;
                padding: 0 8px;
                selection-background-color:darkgray;
                height:40px;
                font-size:15px;}
.

cpp文件:

QApplication a(argc, argv);
QFile stylesheet("formStyle.qss");
stylesheet.open(QFile::ReadOnly);
QString setSheet = QLatin1String(stylesheet.readAll());
a.setStyleSheet(setSheet);
.

也许这是对的,我正在做别的错误?

有帮助吗?

解决方案

您调用 qstyle * qapplication :: setstyle(constqstring&style),它从qstylefactory请求qstyle对象样式

而言,您应该调用 void qapplication :: setstylesheet(const qstring&phert),设置应用样式表。

其他提示

以上尝试是正确的语法,但有可能不起作用的原因。

可能的问题:

  1. 源文件(.qss)未被检索

    选择不正确的顶部小部件以应用级联。

  2. .qss(css)代码的语法。

    我不得不问我的问题是我有两个问题中的两个问题。我首先要指向文件正确的位置,而第二个我必须直接申请qwidget。

    QFile stylesheet("G:/Applications/Projects/ProspectTracker/formStyle.qss");
    stylesheet.open(QFile::ReadOnly);
    QString setSheet = QLatin1String(stylesheet.readAll());
    QWidget::setStyleSheet(setSheet);
    
    .

    @bill谢谢您的帮助。他指出,我发布了.setStyle而不是生成的。上面的示例代码不再反映了这一点,但如果我没有改变我所做的任何东西都会有效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top