QTE3.3.1中BDF转QPF可能遇到的一个BUG
我在研究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; } } } 就不会出错了。。