各位大侠:
我的机器装的是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重新编辑 ]