标题:请教:qt显示中文的问题
作者:zhougy
日期:2008-03-20 16:14
内容:
我用的是2410板子自带的qt,在x11用qt2.3.2
程序一直无法显示中文,
在网上查了很多方法,中文要么显示问号,要么乱码
用他的翻译工具实现,还是问号
直接运行examples文件夹里的i18n,也只能显示英文
选择其他语言文字,包括中文,都显示方框
是否是中文字库的问题?
不知如何解决
请教高手
#1 [chenliangzhu 03-20 17:03]
声明一个QTextCodec codec;
codec.toUnicode("中文显示");
好像就可以了吧?
#2 [zhougy 03-20 18:29]
代码是这样吗
QTextCodec *code = QTextCodec::codecForName("GBK");
QString unistr = code->toUnicode("草");
TextLabel1->setText( unistr );
编译通过,运行的时候还是问号
不知道怎么回事儿,qt自带的例程我也显示不了汉字
#3 [badicoubid 03-22 09:48]
字体原因
你有没有支持中文的字体,比如说unifont
有的话设置TextLabel1的字体格式为unifont
#4 [zkgq 03-22 16:59]
zhougy:
我也是同样的问题,但是你好像比我好点,我编译能通过,但用QVFB测试的时候老出现“段错误”的提示。方法和你的一样QTextCodec *code = QTextCodec::codecForName("GBK");
QString unistr = code->toUnicode("草");你可以听取一下楼上的建议,设置下字体,然后再试试。
不知道你出现过我的问题没?
#5 [lsyer 03-23 14:40]
#include
#include
#include "client4rj.h"
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
if (!QSystemTrayIcon::isSystemTrayAvailable()) {
QMessageBox::critical(0, QObject::tr("Systray"),
QObject::tr("I couldn't detect any system tray on this system."));
return 1;
}
client4rj *dialog=new client4rj;
dialog->show();
return app.exec();
}
QTextCodec::codecForName("UTF-8")此处若是其它编码就用其它编码名称,比如gb2312就用gb2312。