QT unicode编码问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT unicode编码问题相关的知识,希望对你有一定的参考价值。

各位大侠,我用QT做了一个界面,我想从一个由unicode编码的TXT文件读入数据,但是读入得数据都是乱码,用QT怎么处理能使它不乱码,用ASCII编码的TXT文件就没有问题,请指教。。。

读取文件之后,使用tr()进行转换。

加上这句试试:
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

可能需要包括#include<QTextCodec>
参考技术A 判断出文件的编码格式,设置QString的编码,按照编码来去字符串就没有问题了。 参考技术B 你需要加入qt字库这样就能识别了。

qt 编码的问题

在编译的时候出现了警告 warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
我用的是qt 5.3.2 上网找到了一些方法:
(1)转换Code文件为Unicode格式;(这种方法不懂啊 在哪里转换?我在工具>选项>文本编辑器>默认编码 中没有找到Unicode啊?)
(2)在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;(这个方法找不到啊 是不是5.3.2中project 中没有properties 啊 我怎么找不到)

(3)或找出不符合Unicode格式的文件,然后在该文件的开始处加入下面的语句:

# pragma warning (disable:4819) (这个方法没有用)

大家有其他方法么?

参考技术A 你说的是?在代码编辑页上出现黄色的警告? 如果是的话可以这样..

编辑--->选择编码--->选择 UTF-8追问

成功了 我还想问你个问题  因为我要做作业 现学qt不太懂 我想实现下面的机制

左边是几个按钮 右边是一个显示的区域我点击不同的按钮  对应的内容都显示在邮编的区域  有控件可以实现么?尽量用控件拖拽的方法吧 因为我还是不太会写qt的代码 谢谢!

追答

其实你这样,还不如使用 Tab Widget 或者 Stacked Widget..

不然你就画三个框框... 点击每个按钮的时候信号绑定一下button click()hide() or show()的方法 ..
点"查看" ,显示地一个框框,其他三个隐藏.

qt5 貌似用QML更开心~~

追问

我用的是setVisible(false) 这个hide 有什么区别啊?
我用了Gird Layout 能不能整体隐藏或者不可见啊?
现在出现的问题是 两个层叠在一起 其中一个层显示的时候上面的linetext不能用就是光标不能显示

追答

hide() 的帮助文档里面写,
This convenience function is equivalent to calling setVisible(false).
这个函数等同于调用setVisible(false)..所以没差..
Gird Layout 你要整体隐藏就在他外面加上Widget, 隐藏Widget就好了啊..
最近学QML比较多.. QT就是随便看看..你试试可以不

本回答被提问者和网友采纳

以上是关于QT unicode编码问题的主要内容,如果未能解决你的问题,请参考以下文章