您的位置:365bet体育备用网址器 > 应用 > 在转换完之后对qStr进行一些列的处理,对非英语

在转换完之后对qStr进行一些列的处理,对非英语

2019-12-16 22:52

明天做三个类型,由于用到人家的程序,而以此顺序的接口给的是std::wstring类型的,而对字符串的拍卖,QT中的QString要比wstring强盛超多,所以要拓宽这两种类型字符串之间的想换转变

Qt版本:5.5.1

首先介绍std::wstring转变到QString

 

此处运用了QString中的函数

Qt的QString功能丰盛,对非瑞典语语言的支撑亦不是主题材料,但帮助得缺乏直接。比方,像

QString qStr;
qStr= QString::fromStdWString(wStr);

?

此地的qStr是改动之后的字符串,wStr是在展开转移早先运用的字符串。

1
QString str("死亡使者赛维");

在转移完事后对qStr实行部分列的管理,举个例子:

这么一向用带汉语的字符串举行布局,那么用QMessageBox展现str时将面世乱码。假若接受fromLocal8Bit、fromLatin1那样的函数,又凭仗地点Computer的呈现语言,所以它们不是好格局。

qStr.replace("/", "\\");

 

其风姿洒脱管理的意趣正是把字符串qStr中的/都替换来\,wstring是从未有过那样的函数的

365bet在线官网,显式地接受宽字符(wchar_t卡塔尔国或UTF-8才是好方式。

在拍卖完事后,大家要把QString类型的字符串重新更改回wstring,这里运用的依然

?

QString中的函数,

1
2
QString str0(QString::fromStdWString(L"数学分析"));
QString str1(QString::fromUtf8(u8"高等代数")); // C++11
wStr = qStr.toStdWString()

UTF-8的字符串字面量是C++11的剧情,倘若你的编写翻译器不扶助它,能够用第生龙活虎种办法。那样,不管本地的语言是何等,都是足以通吃的。

上边给出三个完好无损的例子

 

std::wstring wStr = L"C:windowssystem32hao123tianCai";
QString qStr = QString::fromStdWString(wStr);
qStr.replace("/","\\");
wStr = qStr.toStdWString();

测验一下吗!

末尾的结果大家应该都精通了就是wStr里面存的是"C://windows//system32//hao123//tianCai//"

?

正文出自 “卖萌程序猿” 博客,请必得保留此出处

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void MsgBox(const QString &s)
{
    QMessageBox::information(nullptr, QString::fromUtf8(u8"标题"), s, QMessageBox::Ok);
}
 
void MainWindow::on_pushButton_clicked()
{
    QString str0(QString::fromStdWString(L"数学分析"));
    QString str1(QString::fromUtf8(u8"高等代数"));
    QString str2(QString::fromUtf8(u8"ステンカラーのコート 【折式立领的外套】")); // 日文也不是问题
    QString s(QString::fromUtf8(u8"rn"));
 
    MsgBox(str0 + s + str1 + s + str2);
}

...

运维结果:

365bet在线官网 1

 

最后交给QString与std::wstring的相互调换。

从std::wstring到QString,用QString的静态成员函数QString::fromStdWString。它选用八个std::wstring类型的参数,重临对应的QString。

?

1
2
std::wstring str_STL(L"实变函数论");
QString str_Qt = QString::fromStdWString(str_STL);

从QString到std::wstring,用QString的积极分子函数QString::toStdWString。它回到一个std::wstring。

?

1
std::wstring str_STL = str.toStdWString();
 

本文由365bet体育备用网址器发布于应用,转载请注明出处:在转换完之后对qStr进行一些列的处理,对非英语

关键词: