qt - 如何将QT中的大样式文件(qss文件)拆分为小文件并全部加载

标签 qt split qt4.8 qtstylesheets

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

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

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

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

有什么有效的方法可以做到这一点吗?!!

最佳答案

你的方法听起来是正确的。这个过程并不像听起来那么复杂。您唯一需要的就是在资源中添加“较小的”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()
}

关于qt - 如何将QT中的大样式文件(qss文件)拆分为小文件并全部加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14231596/

相关文章:

linux - X2go "qt_geo_map calling GLX 1.3 function "glXCreatePbuffer“当不支持 GLX 1.3 时!”

macos - Qt 4.8 - 在 mac-mini (OS X Lion) 上检测 SD 卡的插入和移除

c++ - 相同顺序和长度的QT中的JSON对象比较

python - 我怎样才能只解析/拆分每个元素中有多个冒号的列表?创建字典

Python:删除字符串开头的数字

c++ - 如何在点击 Qtablewidget 单元格时获取放置在该单元格中的小部件的行号?

c++ - 指针作为类变量 Qt

c++ - 使用 QProcess 向服务器发送命令

c++ - 从文件中读取而不是逐行

java - 按路径拆分正则表达式