一、QString类
1、QString转换string
string s = qstr.toStdString();
2、string转换QString
QString qstr2 = QString::fromStdString(s);
3、字符串连接函数
(1) QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起。
(2) QString的append()函数则提供了类似的操作,例如:
str = "User: ";
str.append(userName);
str.append("\n");
4、获取字符在字符串中的位置(类似string.find)
QString x = "sticky question";
QString y = "sti";
x.indexOf(y); // returns 0
x.indexOf(y, 1); // returns 10
x.indexOf(y, 10); // returns 10
x.indexOf(y, 11); // returns -1
5、获取字符在字符串中最后出现的位置(类似string.rfind)
int pos = fileDir.lastIndexOf("\\");
6、获取子字符串(类似string.substr)
QString QString::mid(int position, int n = -1) const
参数:
position:指定截取字符串的起始位置(postion超出字符串长度时,返回null字符 )
n:指定截取字符串长度(自postion开始的可用字符串小于n,or n== -1,返回自position开始的全部字符串)
示例:QString fileName = fileDir.mid(pos+1);
7、求字符串的长度,返回值为INT型
fileName.length()
8、字符串组合QString::sprintf()
QString str;
str.sprintf("%s","Welcome "); //str = "Welcome "
str.sprintf("%s"," to you! "); //str = " to you! "
str.sprintf("%s %s","Welcome "," to you! "); //str = "Welcome to you! ";
9、字符串组合QString::arg()
QString str;
str = QString("%1 was born in %2.").arg("Joy").arg(1993); //str = "Joy was born in 1993.";
二、QStringList类
QStringList fileList = QFileDialog::getOpenFileNames(this,tr("Get audio files"),
QDesktopServices::storageLocation(QDesktopServices::MusicLocation),tr("Music (*.mp3 *.wav *.aac)"));
int index = fileList.size();
qDebug("index:%d!", index);
QList<QString>::Iterator it = fileList.begin();
for(; it != fileList.end(); it++)
{
QString fileDir = *it;
//std::string s_fileDir = fileDir.toStdString();
//int pos = s_fileDir.rfind("\\");
//std::string s_fileName = s_fileDir.substr(pos+1);
//QString fileName = QString::fromStdString(s_fileName);
int pos = fileDir.lastIndexOf("\\");
QString fileName = fileDir.mid(pos+1);
AddFileToPlayList(fileName, fileDir, "01:01:01");
}