QT QStringList 用法汇总

2016-06-10 发布 0条评论

QStringList类提供了一个字符串列表
从QList <QString>继承而来,它提供快速索引为基础的接入以及快速插入和清除
其成员函数用于操作这个字符串列表如
append(),insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()等
1. 增加字符串
   可以通过append(),或使用<<,如

   QStringList fonts;
   fonts << "Arial" << "Helvetica" << "Times" << "Courier";
   // fonts:[ "Arial" ,"Helvetica", "Times" , "Courier"]


2. 合并字符串使用join( )
 

  QString str = fonts.join(",");
   // str == "Arial,Helvetica,Times,Courier"


3. 拆分字符串

   QString str = " Arial,Helvetica, ,Times,Courier ";
   QStringList list1 = str.split(",");
   // list1: [ " Arial ", " Helvetica ",” “, " Times ", " Courier " ]
   QStringList list2 = str.split(",", QString::SkipEmptyParts);
   // list2: [ " Arial ", " Helvetica ", " Times ", " Courier " ]


   也就是说如果有QString::SkipEmptyParts,空项不会出现在结果。默认情况下,空项被保留
4. 索引
   IndexOf()函数返回给定字符串的第一个出现的索引。
   而lastIndexOf()函数,返回字符串的最后一次出现的索引。
5. 替换replaceInStrings()

   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 list;
   list << "Bill Murray" << "John Doe" << "Bill Clinton";
   QStringList result;
   result = list.filter("Bill");
   // result: ["Bill Murray", "Bill Clinton"]

7.遍历

 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;
   }
  }