• 7151阅读
  • 2回复

[提问]【提问】初学qt,请教各位:我的qt显示中文用各位给的方法怎么不行? [复制链接]

上一主题 下一主题
离线wgg
 
只看楼主 倒序阅读 楼主  发表于: 2005-11-28
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
各位大侠:
我的机器装的是redhat9,安装时没用选择的是英文,qt是2.3.7(不好意思,比较老了:),我看了好几篇关于qt显示中文的文章,试了一下不行:
方法如下:
1.从windows下拷贝一种字体,如仿宋体simfang.ttf,放到lib/fonts目录下
2.修改fonts目录下的fontdir文件,将simfang.ttf添加到字库中,在fontdir末尾添加一行:fangsong simfang.ttf FT n 50 0 u
3.在程序中void Hello::paintEvent( QPaintEvent * )函数中添加一行,函数如下:void Hello::paintEvent( QPaintEvent * )
{  
  QPainter p( this );
  QTextCodec *gb_codec=QTextCodec::codecForName("GB2312");
  QString unicodestring=gb_codec->toUnicode("你好!");
  p.drawText( 10, 20, unicodestring);
}
编译通过,但运行时报错:segmentation fault,程序就退出了。
不知是啥问题,请各位指教!

另外,qt支持那么多字符集,qt帮助文档中说选择字体要先选择与指定的字符集相匹配的字体,但怎么知道某个字体文件属于哪个字符集呢? 如simfang.ttf是不是属于GBK字符集? GBK和ISO_8859_1是不是两种互不相同的字符集呢? 我对字符集(包括各种字符集标准)、字体文件之间的关系不清楚,请指教!
[ 此贴被XChinux在2005-11-29 16:40重新编辑 ]
离线mage1982

只看该作者 1楼 发表于: 2005-11-28
段错误就是指针的问题
把精力集中在指针的检查上
离线wgg
只看该作者 2楼 发表于: 2005-11-29
我调试了一下,是      QTextCodec *gb_codec=QTextCodec::codecForName("GBK");调用没用成功,gb_codec为空。不知是什么原因?
快速回复
限100 字节
 
上一个 下一个