Linux下Qt编程怎么显示中文?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下Qt编程怎么显示中文?相关的知识,希望对你有一定的参考价值。
程序代码是:
#include <qapplication.h>
#include <qwidget.h>
#include <qlabel.h>
#include <qtextcodec.h>
int main(int argc,char* argv[])
QApplication app(argc,argv);
//QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QWidget* pwidget=new QWidget;
QLabel label(pwidget);
label.setText(QObject::tr("你好!"));
pwidget->show();
return app.exec();
make以后显示错误:
error:'setCodecForLocale' is not a member of 'QTextCodec';
error:'setCodecForTr' is not a member of 'QTextCodec';
error:'setCodecForCStrings' is not a member of 'QTextCodec';
不知道什么问题?请指点!
没平台,你试下下面的方法:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());追问
不行,我用的是Qtopia-2.2.0版本,嵌入式Qt!
追答那你得看下他的API手册吧。。
参考技术B 你可以这样试试。#include <QTextCodec>
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec );
QTextCodec::setCodecForLocale(codec );
QTextCodec::setCodecForCStrings(codec ); 参考技术C C/C++ code#include <QtGui/QApplication>
#include <QtCore/QTextCodec>
#include <QDir>
#include <QTranslator>
#include "MainForm.h"
int main(int argc, char *argv[])
QApplication a(argc, argv);
QDir::setCurrent(QApplication::applicationDirPath());
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB18030"));
setupTranslator();
a.setApplicationName("中文程序");
TMainForm w;
w.show();
return a.exec(); 参考技术D Qt 没有写过代码 我都是用gtk
不过看错误提示 很明显
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
这3段设置错了
我一下我去看看 代码应该怎么写本回答被提问者和网友采纳 第5个回答 2013-04-11 你的是qt5.0版么?setCodecForTr等被舍弃了
嵌入式Linux下Qt的中文显示
一般情况下,嵌入式Qt界面需要中文显示,下面总结自己在项目中用到的可行的办法
1,下载一种中文简体字体,比如我用的是”方正准圆简体“,把字体文件放在ARM开发板系统的Qt字库中,即/usr/lib/fonts下
2,添加ARM开发板上的环境变量,打开vi /etc/profile,添加
- export QT_QWS_FONTDIR=/usr/lib/fonts
3,在main.cpp中,添加
- QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
- QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
4,引用时用tr()
以上是关于Linux下Qt编程怎么显示中文?的主要内容,如果未能解决你的问题,请参考以下文章