• 3943阅读
  • 1回复

QTE3.3.1中BDF转QPF可能遇到的一个BUG [复制链接]

上一主题 下一主题
离线forestarmy
 

只看楼主 倒序阅读 楼主  发表于: 2010-03-08
        我在研究QTE3.3.1字体的过程中发现,对于特定的BDF(例如只有汉字的BDF字体文件)在转成QPF格式时候会出现段错误,但是该文件中的字体可以直接用于界面显示。追踪代码发现qmemorymanager_qws.cpp中void QMemoryManager::savePrerenderedFont(FontID id, bool all)函数有这么一句代码
    if ( !mmf->tree )
    mmf->tree = new QGlyphTree(32,32,mmf->renderer);// 32 = " " - likely to be in the font
       这个32像注释说的 likely to be in the font。
      修改为
      if ( !mmf->tree ){
       for (int ii=0; ii<=mmf->renderer->maxchar; ii++) {
                   if ( mmf->renderer->inFont( ii ) ) {
                            mmf->tree = new QGlyphTree(ii,ii,mmf->renderer);
                            break;
                       }


           }
    }
    就不会出错了。。
离线hercules

只看该作者 1楼 发表于: 2010-03-08
为什么不用makeqpf来转呢?
我的QQ号:337396132
欢迎大家加我为好友,一起学习Qt
快速回复
限100 字节
 
上一个 下一个