1、查看Halcon帮忙文档
养成良好的查资料习惯,能够实现事倍功半。
1.1 Halcon12和Halcon20不同版本的帮忙有所不同
在Halcon12中,有set_font和set_display_font两个算子,其中set_display_font是本地函数模式,所以最终的实现算子为set_font.
依照不同的零碎环境下,应用办法略有不同:
不同的零碎下应用的办法不同,本来认为比较简单,间接依照文档的example来设定就行,然而win下的字体比拟多,这种办法可行,其余的零碎下未必有指定的Font类型,所以我在Linux下始终提醒的Font类型谬误;
再翻一下最新版Halcon20版本的文档
新版介绍简略了很多,如果只批改字体,间接应用set_system('default_font',Font)设置默认字体就行,这里还进行提醒,依据不同的零碎,获取反对的字体进行设置,最初给出了比拟简洁的example做参考。
1.2在win和LINUX下用Qt实现字体批改
依据之前的帮忙文档,能够在Qt下实现字体批改
//设定Halcon窗口文字字体 HTuple hv_OS; GetSystem("operating_system",&hv_OS); if(hv_OS.TupleSubstr(0,2) == HTuple("Win")){ //办法一:间接设置Font参数 QString Font_win = "-Arial-10-*-1-*-*-1-"; QByteArray ba = Font_win.toLocal8Bit(); const char *string = ba.data(); SetFont(hv_WindowHandleCurrent,string); } else if(hv_OS.TupleSubstr(0,4) == HTuple("Linux")){ //办法二:获取零碎下的字体,抉择第一个加载应用 HTuple hv_Font,hv_FontWithSize; QueryFont(hv_WindowHandleCurrent,&hv_Font); hv_FontWithSize = HTuple(hv_Font[0]) + "-40"; SetFont(hv_WindowHandleCurrent,hv_FontWithSize); }
因为在Linux下设置了好几种字体都显示谬误,所以间接应用第二种办法,获取Linux反对的字体进行设置。
根据上述办法设定的成果如下
1.3相干实现Demo程序
Halcon窗口显示文字字体批改