2

我正在尝试做的我需要将我的大样式文件拆分为小样式文件,因为现在很难读取样式文件(qss 文件)并向其添加新样式。之后我需要加载那些小的 qss 文件来应用它们

我正在通过调用我创建的 main 函数来加载我的大文件

void Utilities::loadEnglishStyle()
{
    QFile file(":/EnglishClasses.qss");
    file.open(QFile::ReadOnly);
    QString StyleSheet = QLatin1String(file.readAll());
    qApp->setStyleSheet(StyleSheet);
    file.close();
}

我考虑过拆分大文件,将小文件添加到资源中,然后将它们全部打开,然后QFile将它们全部连接到一个字符串中,但是每次添加新的 qss 文件时,我仍然需要再次执行相同的过程

有没有有效的方法来做到这一点?!

4

2 回答 2

2

你的方法听起来是正确的。这个过程并不像听起来那么复杂。您唯一需要的是在资源中添加“较小”的 qss 文件,在特定前缀下(例如。stylesheets),然后自动加载和连接所有这些文件。示例代码如下:

QDir stylesheetsDir(":/stylesheets");
QFileInfoList entries = stylesheetsDir.entryInfoList();
QString completeStylesheet = "";
foreach (QFileInfo fileInfo, entries)
{
    QFile file(":/stylesheets/" + fileInfo.fileName(););
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
       continue;

    QTextStream in(&file);
    completeStylesheet += in.readAll()
}
于 2013-01-09T09:53:50.823 回答
0

你的意思是一些API应该添加为:

QWidget::addStyleSheet(StyleSheet);
QWidget::clearStyleSheet(StyleSheet);
于 2013-01-10T03:11:12.483 回答