Linux下Qt编程怎么显示中文?
程序代码是:#include<qapplication.h>#include<qwidget.h>#include<qlabel.h>#include<qtextcode...
程序代码是:
#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';
不知道什么问题?请指点! 展开
#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';
不知道什么问题?请指点! 展开
5个回答
展开全部
你的是qt3版本?
没平台,你试下下面的方法:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
没平台,你试下下面的方法:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
追问
不行,我用的是Qtopia-2.2.0版本,嵌入式Qt!
追答
那你得看下他的API手册吧。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以这样试试。
#include <QTextCodec>
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec );
QTextCodec::setCodecForLocale(codec );
QTextCodec::setCodecForCStrings(codec );
#include <QTextCodec>
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec );
QTextCodec::setCodecForLocale(codec );
QTextCodec::setCodecForCStrings(codec );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
#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();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Qt 没有写过代码 我都是用gtk
不过看错误提示 很明显
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
这3段设置错了
我一下我去看看 代码应该怎么写
不过看错误提示 很明显
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
这3段设置错了
我一下我去看看 代码应该怎么写
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的是qt5.0版么?setCodecForTr等被舍弃了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询