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) (这个方法没有用)
大家有其他方法么?
编辑--->选择编码--->选择 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编码问题的主要内容,如果未能解决你的问题,请参考以下文章
Qt读取ANSI格式文件——利用QTextCodec将其他编码格式的QByteArray转换为Unicode格式,或者从文件中读出后直接做转换