文章目录
前言:
一、QString
1、创建和初始化 QString
// 使用空字符串初始化
QString str1;
// 使用 C 风格字符串初始化
QString str2("Hello, Qt!");
// 使用字符数组初始化
const char* cstr = "Hello, Qt!";
QString str3(cstr);
// 使用 UTF-8 编码的字节数组初始化
QByteArray byteArray = "こんにちは、Qt!";
QString str4(byteArray);
// 使用 std::string 初始化(需要包含 <QString> 和 <string>)
std::string stdStr = "Hello, Qt!";
QString str5(stdStr.c_str()); // 或者使用 QString::fromStdString(stdStr)
// 使用 std::wstring 初始化(需要包含 <QString> 和 <string>)
std::string stdStr1 = L"Hello, Qt!";
QString str6(stdStr1.c_str()); // 或者使用 QString::fromStdWString(stdStr)
// 使用单个字符初始化
QString str7(QChar('A'));
// 使用数字初始化(转换为对应的 ASCII 字符)
QString str8(65); // 结果为 "A"
2、字符串拼接
QString str1 = "Hello, ";
QString str2 = "Qt!";
QString str3 = str1 + str2; // 结果为 "Hello, Qt!"
QString str4 = "Hello, ";
str4.append("Qt!"); // str4 现在也是 "Hello, Qt!"
3、字符串的查找和替换
QString str = "Hello, Qt!";
int index = str.indexOf("Qt"); // 返回 "Qt" 的索引位置
bool containsQt = str.contains("Qt"); // 返回 true
QString newStr = str.replace("Qt", "World"); // 结果为 "Hello, World!"
4、字符串的分割
QString str = "apple,banana,cherry";
QStringList list = str.split(","); // list 包含 "apple", "banana", "cherry"
5、字符串的转换
QString str = "123";
int number = str.toInt(); // 转换为整数
double dbl = str.toDouble(); // 转换为浮点数(注意:这里会失败,因为 "123" 不是有效的浮点数表示)
QByteArray byteArray = str.toUtf8(); // 转换为 UTF-8 编码的字节数组
std::string stdStr = str.toStdString(); // 转换为 std::string(需要包含 <QString> 和 <string>)
std::string stdWStr = str.toStdWString(); // 转换为 std::string(需要包含 <QString> 和 <string>)
6、字符串的格式化
QString name = "Alice";
int age = 30;
QString greeting = QString("Hello, %1. You are %2 years old.").arg(name).arg(age);
// 结果为 "Hello, Alice. You are 30 years old."
7、国际化支持
QString translatedString = tr("Hello, World!");
// 在.ts文件中为"Hello, World!"提供翻译后,translatedString将显示翻译后的文本