QT中文输入与显示的问题

我是windows系统。我用的是vs2012编写qt程序,我已经向vs中添加了qt类库。现在我遇到了中文输入和显示的问题。我一向窗口部件Qlable或Qlineedit显示中文就出现乱码,我在网上百度的小样都运行不了,说是我没有定义setCodecForTr函数,但哪个函数怎么定义啊,我以为是头文件中自动包含了定义和实现呢。
#include "mywindow.h"
#include
#include

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

QLabel hello(QObject::tr("你好"));

hello.setWindowTitle(QObject::tr("终于搞定中文"));

hello.show();

mywindow w;
w.show();
return a.exec();
}

qt
0

4个回答

这个问题很多人回答过了,你搜一下? Qt5.X版本已经取消了QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));,而且也不推荐这种
方法。你的项目源码编码应该默认是UTF-8的,这样,你在源码里写的汉字是UTF-8的,你的源码文件或许还会在编译的时候报错误。简单的办法是
删掉QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));这行
QLabel hello(QObject::tr("你好")); 这行改成:QLabel hello(QObject::tr("\344\275\240\345\245\275"));
hello.setWindowTitle(QObject::tr("终于搞定中文"));这行改成hello.setWindowTitle(QObject::tr("\347\273\210\344\272\216\346\220\236\345\256\232\344\270\255\346\226\207"));

0
qq_20203153
qq_20203153 大神你好,我那只是小样,我现在是写了一个程序。程序要输出道路名称,道路名称有上百条,我存在数组里的,我不可能每一条都这么翻译吧,求大神介绍个别的方法吧
大约 4 年之前 回复

如果你的源码是UTF-8,而你的locale是GBK那么首先,你的源码里如果数组存储汉字(UTF-8)的有可能编译的时候都报错。给你看看一般的两者转换
方法:
QByteArray convertGb2312ToUtf8(const QByteArray &originalStr)
{
QString unicodeStr = QTextCodec::codecForName("GBK")->toUnicode( originalStr );
return QTextCodec::codecForName("UTF-8")->fromUnicode( unicodeStr );
}

0

为了不报错,应该把你的项目属性中的编码规则改成UTF-8和如果是UTF-8则添加。

0

举个简单的例子:我的源码目前的选项是:UTF-8编码,BOM目前存在了则保留。我的源码中如果有如下代码:
QString str=QString("这个会引起错误吗?");
然后就会编译报错:
error: C2001: newline in constant
但是当你把前边的选择项修改成BOM如果没有则添加,然后先删除中文,再重新输入一遍并保存,qmake,nmake。不报错了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
解决中文输入 Qt 针对5.8也做了说明 及4.x版本
上半部分是qt5nn下半部分是qt4nn————————————————————————————————————————————nn1、安装 fcitx-frontend-qt5nnsudo apt-get install fcitx-frontend-qt5nn2、将安装之后的 fcitx-frontend-qt5复制到指定的目录中去。n我们可以通过在命令行下输入( dpkg -L fcitx-...
彻底解决QT5.5以上版本中文输入的问题
本人亲测,主要针对的系统是ubuntu14.04和16.04,QT5.5版本以上,想自己编译的可按照http://www.cnblogs.com/cposture/p/5397694.html进行编译,不想编译的直接下载我编译好的就行
解决 Ubuntu 14.04 下 Qt5 中文显示和中文输入法问题
1qt5安装n软件中心中安装 qt creater,此时Qt无法显示中文 且无法输入中文nn1 中文显示n如果要设置中文等语言,还要下载一些语言文件。可以到http://qt-project.org上下载一个包,安装后把语言文件都复制到/usr/share/qtcreator/translations。n2中文输入n首先语言包要安装完整 系统设置 》语言设置中可以安装中文语言包
关于Mac10.14.1下QT中输入文字无法显示问题
最近在学习QT研发,发现在制作登陆界面的时候,选用的控件Line Edit在运行后输入竟然不显示,我一开始还以为是我的键盘坏了?或者是这个插件损坏了?n经过种种排查,无果。遂放弃。然后今天在运行的时候,竟然无意发现,文字是有的,只不过因为背景色给遮挡了。n于是我就在设置里将apperance改为了light,就可以正常的显示了。。n这个锅,好坑啊。。。nn...
ubuntu 16.04 + Qt 5.7.1 无法输入中文的解决方法
ubuntu 16.04 + Qt 5.7.1 无法输入中文的解决方法author@jason_ql nhttp://blog.csdn.net/lql0716n安装fcitx-frontend-qt5n sudo apt-get install fcitx-frontend-qt5找到以下路径的文件n /usr/lib/x86_64-linux-gnu/qt5/plugins/platform
qtcreator4.5 和 qt5.10 无法输入中文得解决办法
先安装fcitx-libs-qt和fcitx-libs-qt5这两个库。rnsudo apt-get install fcitx-libs-qt fcitx-libs-qt5rnrn然后把/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/下的libfcitxplatforminputcontextplugin.sornrn复制到
解决Qt5在麒麟Linux下不能输入中文问题
解决Qt5在麒麟Linux下不能输入中文的问题,需要了解fcitx并安装fcitx的插件库到应用程序中并启动fcitx。Fcitx是 (Free Chinese Input Toy for X) 的英文缩写,中文名为小企鹅输入法,是一个以 GPL 方式发布的输入法框架, 编写它的目是为桌面环境提供一个灵活的输入方案,彻底解决在GNU/Linux下没有一个好的中文输入法的问题。
解决UbuntuQT5.10无法输入中文
1. 安装 fcitx-frontend-qt5,nnnsudo apt-get install fcitx-frontend-qt5nn2 ,进入/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontextsnnncd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontextsnn...
QT的中文输入(拼音)
QT的中文输入(拼音)
QT配置中文输入
Ubuntu16.04安装的QT下不能输入中文的解决方案(我安装了搜狗输入法和Qt5.9.1 creator)n1.sudo apt-get install fcitx-frontend-qt5n2.找到libfcitxplatforminputcontextplugin.so。n通常在下面的目录路径中(可用命令dpkg -L fcitx 看文件安装路径):n/usr/lib/x86_64-lin...
解决ubuntu下Qt中无法输入中文的问题
环境:ubuntu16.04 、Qt5.7刚安装玩Qt后发现在程序中加注释是无法输入中文的,查着原因后找到了以下解决办法:首先安装fcitx-frontend-qt5sudo apt-get install fcitx-frontend-qt5然后查看 fcitx-frontend-qt5的安装目录ls -l /usr/lib/x86_64-linux-gnu/qt5/plugins/platfo...
Qt不能使用中文输入法的问题
解决Qt不能使用中文输入法的问题,特此记录nn最近在使用Qt的过程中,发现Qt不能使用中文输入法,解决之后特此记录一下nnQt中不能使用中文输入法是因为在你Qt安装目录/Qt*/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts缺少插件,nn只需要把/usr/lib/x86_64-linux-gnu/qt5/plugins/platformin...
QT软键盘中文输入
QT自带的软键盘实现中文输入
亲测有效已解决 ubuntu16.04系统 Qt5无法输入中文
已解决 ubuntu16.04系统 Qt5无法输入中文nlinux 需要环境:n1.ubuntu16.04n2.Qt5.8(可以尝试各种Qt5的版本)n前言n  安装好Qt5.8.0之后,发现不能在里面中英文切换,为程序做注释十分的不方便现在将解决办法贴出,亲测有效n第一步 打开终端n1.Ctrl + Alt +Tn第二步 安装 fcitx-fron确认tend-qt5nsudo apt-get ...
[教程]解决ubuntu16.04下Qt5.9.1无法输入中文
当在ubuntu16.04系统上安装好Qt5.9.1,进行程序开发时,发现无法在Qt Creator IDE中输入中文,而只能输入英文字符和数字。n这对开发带来极大的不方便,如无法编辑基础的注释,所以下述将详细介绍如何解决此问题。
Qt5 简易软键盘 - 支持中文输入
Qt5简易软件盘,支持中文输入、英文输入、数字输入,代码贴博客了: http://blog.csdn.net/wu9797/article/details/79018689
linux解决qt输入不了中文的问题
当在ubuntu16.04系统上安装好Q,进行程序开发时,发现无法在Qt Creator IDE中输入中文,而只能输入英文字符和数字。rn这对开发带来极大的不方便,如无法编辑基础的注释,所以下述将详细介绍如何解决此问题。rn  (主要参考:https://blog.csdn.net/amusi1994/article/details/78147696)rn**步骤: **rn1.打开ubuntu终端,安装...
嵌入式Qt开源中文输入法
syszuxpinyin是一款开源的嵌入式qt输入法,原版一直存在一个乱码的问题,现在qt一般设置为UTF-8编码,可是该输入法只支持GBK编码,所以对其进行稍微修改了下,支持UTF-8编码,亲测不再乱码,代码中需要指定编码方式为UTF-8: QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
解决Ubuntu14.04下Qt5.6搜狗输入法中文fcitx
一、前言nn目的:编译生成libfcitxplatforminputcontextplugin.so,放到Qt文件夹下,实现Qt Creater中的快捷键输入法切换以及搜狗中文输入。nn本文理论上可以使用其他Ubuntu版本和Qt5.4以上版本。nn本篇也是我自己的笔记,不对别人负责也要对我自己负责,如果发现用这个方法不能成功,欢迎大家指正。nn nn二、准备工作nn1、安装fcitx-front...
centos7下Qt5.10无法输入中文
找遍网上各种方法,终于解决了该问题,差点就想把Qt版本退回到Qt5.4以前的了。虽然都是linux系统,但是Ubuntu,和Centos的解决方案不同,Qt的版本不同解决方案也不同。找博客时间比较近的借鉴。我的系统是Centos7,但是原理差不多,Ubuntu的也可以借鉴下。有一点要注意的是,先查看自己输入法是ibus的还是fcitx的。后面再对应修改配置文件 n n或者输入echo $QT_IM_
qt5.7.1 windows下虚拟键盘 中文输入方法
首先感谢大神Jason188080501的帖子,地址如下:http://blog.csdn.net/wsj18808050/article/details/52682566在这个帖子的基础上,我实现了虚拟键盘的调试。大神帖子很完美,但是仅限于qt的自身的那个例子,我这儿加上几句,将适应于任何想要调用虚拟键盘的windows程序为了使任意qt的windows应用程序实现虚拟键盘汉语输入,在参考上述例...
Qt在ubuntu无法输入中文的解决
我安装的Qt版本很多,但是都会遇到无法输入中文的问题,但是都是在fcitx遇到,使用ibus是可以输入中文的,在这里我是使用的fcitx,搜狗输入法,具体是什么原因我们就不讨论了,来看看解决办法。首先安装fcitx-frontend-qt5 sudo apt-get install fcitx-frontend-qt5这个好像都是默认安装了的,然后查看fcitx-frontend-qt5 的安装目录
ubuntu 16.04 + Qt 5.10 creator 下支持搜狗输入法输入中文
在Ubuntu下的 qt creator 下想输入中文. nn安装fcitx-frontend-qt5nnsudo apt-get install fcitx-libs-qt fcitx-libs-qt5nn查找库nnsudo find / -name "libfcitxplatforminputcontextplugin.so"nnn我的是16.04 64位,位置在下面路径下,然后将其拷贝到 q...
Ubuntu下Qt使用ibus输入中文
sudo vim/etc/profilenn然后再文件尾加上nnexportGTK_IM_MODULE=ibusnnexportXMODIFIERS=@im=ibusnexportQT_IM_MODULE=ibusnn重启Ubuntunn然后我们就能在Qt里面输入中文了。nnn...
qt creator 中解决不能中文输入的问题
export QT_IM_MODULE=iBus rn在qtcreator.sh 启动脚本文件中加入环境变量设置。
Qt中文输入的问题
我新建一个工程,然后再main函数里加入rnQTextCodec::setCodecForTr(QTextCodec::codecForLocale());rnQString str;rnstr = QObject::tr("你好");rnqDebug() << str;rn这样输出的就是“你好”。可是当我把这段代码放到我在做得一个大工程的main函数里面时,就输出乱码,我不知道这是为何,两个工程的pro文件基本没有什么差异,请大神帮忙看看~~~
Qt中文输入问题
QTable中的单元格可以显示从别处复制粘贴的中文字符串,但是不能接收直接输入的中文字符串。rn请问各位高手如何解决。
解决Qt5.6无法使用输入法输入中文
最近在ubantu上使用Qt开发进行开发,遇到不能使用输入法输入中文的问题,有点头疼,于是百度谷歌双管齐下,查阅各方资料,综合各种解决方案,kill 了这个问题,在此做下笔记,也希望能够帮助到同样遇到此问题的人。nn系统版本: ubantu 16.04 LTSnn输入法: 搜狗输入法nn本人Qt版本: Qt5.6nn解决方法,编译 fcitx-qt5 源码nn nn一、解决步骤nn1.1 前期准备...
关于ubuntu Qt无法输入中文的解决办法
关于ubuntu Qt无法输入中文的解决办法rnrnrn1.安装 (以前需要下载源码编译)sudo apt-get install fcitx-libs-qt fcitx-libs-qt5rn2.拷贝动态库到两个目录rn因为这两个目录的位置不同的版本位置不同所以建议搜索,在qt安装目录下搜索 platforminputcontextsrn会找到两个目录 , 将rn/usr/lib/x86_64-l
QtCreator使用ibus输入中文
编辑 /etc/profile rnrnrnrn文件末尾加上rnrnexport GTK_IM_MODULE=ibus  rnrnexport XMODIFIERS=@im=ibus  rnexport QT_IM_MODULE=ibusrnrnrnrnrn重启
Linux 下 Qt 5 无法切换中文输入法
无法切换中文输入的原因是当前下载的QtCreator中没有适配当前输入法框架(ibus、fcitx)的动态库rn解决方法:rn一、安装对应的输入法插件rn1、如果是fcitx:sudo apt-get install libfcitx-qt5-dev,拷贝系统路径上的(/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts) libfcit...
qt中文输入
包含中文输入法的程序, redhat,嵌入式平台验证通过 ubuntu10下有bug,输入法不能正常工作
【ubuntu_problems】Ubuntu 18.04下Qt 5.12.0 安装ROS插件并解决无法输入中文的问题
解决办法n进入到n/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontextsn目录下,n把 libfcitxplatforminputcontextplugin.so 文件n拷贝到QT安装目录下的这两个位置:(以我本人的QT安装路径为例)n/opt/Qt5.12.0/Tools/QtCreator/lib/Qt/plugins/platf...
Qt5支持中文显示
nQString::fromLocal8Bitnn例子nnnQString::fromLocal8Bit(&quot;例子&quot;);nnnconst char* str = &quot;中文&quot;;nnQString::fromLocal8Bit(str);
qt无法输入中文的两种解决办法
以下都是针对5.6版本以后qt中文输入问题写的。nn方案一:nn0.关闭qtcreatornn1.sudo apt-get install fcitx-frontend-qt5nnsudo apt-get install libfcitx-libs-qt5_1nn2.在系统输入法设置那里,选择fcitx,并设置为全局有效。nnnn在终端执行export|egrep "IM|XMODIFIERS"命...
开发板和qt中文显示异常解决方法记录
使用beagleboneblack开发,陆陆续续遇到很多问题,再次记录下,开发板中文显示异常解决办法。
ubuntu 16.04 qt4 无法输入中文的问题
由于项目需要,需要在ubuntu上使用QT4开发,但是开发过程中发现没有在qtcreator编辑时,中文不能输入,用起来十分不便。通过百度之后,参考QT5中文输入的方法,还真找打了解决方案。首先在 /use/lib 下,先查找    find -name &quot;*inputcontext*&quot;结果如下:-rw-r--r--  1 zyt zyt  42968 Sep 19  2016 libcompos...
Linux下Qt/PyQt5无法调用fcitx中文输入法解决办法
系统平台:Linux Mint 18.3 xfce 64bitnn1、首先安装相关软件nnn sudo apt install fcitx-frontend-qt5 fcitx-libs-qt fcitx-libs-qt5nnn安装完成之后会在路径/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/ 看到libfcitxplat...
windows下QT无法输入中文
现象描述:nnn在 Error :Could not decode …With “UTF-8”-encoding,选择了编码GB2312或者GB18030 n2.QT Creator打开该文件,无法输入中文,即使显示输入的是中文,也无法键入nnn原因:nn不清楚nnnn解决:nn用记事本打开该文件,通过另存为转换编码方式为utf-8,保存,而后打开,可正常编辑...
解决Ubuntu18.04下Qt中无法输入中文的问题
问题描述:我的中文输入法是搜狗的,但在qt中写代码时一直无法切换成中文,重启无效!nn原因:安装的qt中缺少中文输入环境nn解决办法:nn进入到/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts目录下,nn把libfcitxplatforminputcontextplugin.sonn拷贝到qt安装目录下:nn~/Qt5.8.0/...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 qt物联网教程 qt教程python