您的位置:首页 > 编程语言 > Qt开发

qt5插件开发QString转码问题

2017-06-24 16:18 811 查看

QString在qt5产生的差异

qt4对QString构造函数的使用

QString objInfo =

QString(obj->metaObject()->className());

或者

QString temp = QString(“%1 %2”)

.arg(“Hello”).arg(“World”);

这些在qt4编译运行是完全没有问题的。

在qt5进行上述操作

则会出现:“ QString::QString(const char*) is qstring.h private ”的错误。查看IDE提示的错误,就能发现QString::QString(const char*)是属于私有构造函数。查看qstring.h的源码就会发现,如果QT_NO_CAST_FROM_ASCII(转码问题)

原因

QString内部使用utf-16,在无预先声明的情况下,无法自动完成转码

解决方法

使用QString::fromLatin1(“Something”)进行转码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt qt5 插件 qt4 QString