QT QStringList 用法.pdf
QTQStringList是Qt库中一个非常实用的数据结构,它继承自QList<QString>,专用于存储和操作字符串列表。在Qt编程中,QStringList提供了多种高效的方法来处理字符串集合,包括添加、删除、查找、替换、合并和拆分等操作。 1. **增加字符串**: 使用`append()`方法可以在列表末尾添加一个字符串,例如: ```cpp QStringList fonts; fonts.append("Arial"); fonts.append("Helvetica"); fonts.append("Times"); fonts.append("Courier"); ``` 或者使用C++的重载操作符`<<`,使代码更简洁: ```cpp QStringList fonts; fonts << "Arial" << "Helvetica" << "Times" << "Courier"; ``` 2. **合并字符串**: `join()`方法可以将列表中的所有字符串合并成一个字符串,中间由指定的分隔符隔开: ```cpp QString str = fonts.join(","); // str == "Arial,Helvetica,Times,Courier" ``` 3. **拆分字符串**: 使用`split()`方法可以从一个字符串中创建一个列表,根据指定的分隔符将字符串拆分为多个部分。可选参数`QString::SkipEmptyParts`可以忽略空元素: ```cpp QString str = " Arial,Helvetica, ,Times,Courier "; QStringList list1 = str.split(",", Qt::SkipEmptyParts); // list1: ["Arial", "Helvetica", "Times", "Courier"] ``` 4. **索引操作**: `indexOf()`用于查找给定字符串第一次出现的索引,而`lastIndexOf()`则返回最后一次出现的索引: ```cpp int index = fonts.indexOf("Helvetica"); // index 为 1 int lastIndex = fonts.lastIndexOf("Helvetica"); // lastIndex 也为 1,如果存在多处相同字符串,此值可能不同 ``` 5. **替换字符串**: `replaceInStrings()`方法允许在整个列表中替换特定的字符串: ```cpp QStringList files; files << "$QTDIR/src/moc/moc.y" << "$QTDIR/src/moc/moc.l" << "$QTDIR/include/qconfig.h"; files.replaceInStrings("$QTDIR", "/usr/lib/qt"); // files: ["/usr/lib/qt/src/moc/moc.y", ...] ``` 6. **过滤字符串**: `filter()`方法可以创建一个新的QStringList,其中只包含满足特定条件的字符串,如包含特定子串或匹配正则表达式: ```cpp QStringList list; list << "Bill Murray" << "John Doe" << "Bill Clinton"; QStringList result = list.filter("Bill"); // result: ["Bill Murray", "Bill Clinton"] ``` 7. **遍历QStringList**: 使用迭代器可以方便地遍历QStringList中的每个元素,例如: ```cpp QList<QString>::Iterator it = user.begin(), itend = user.end(); int i = 0; for (; it != itend; it++, i++) { if (*it == pFindLine->text()) { QModelIndex index = model->index(i); m_pTabList->setCurrentIndex(index); break; } } ``` 在这个例子中,`begin()`和`end()`分别返回了QStringList的起始和结束迭代器,然后通过for循环遍历整个列表。 在实际开发中,QStringList因其易用性和灵活性,常被用来处理文件名、配置项、用户输入等字符串数据。通过以上方法,开发者可以轻松地实现对字符串列表的各种操作,提高代码的效率和可读性。