1、查看Halcon幫助文檔
養(yǎng)成良好的查資料習(xí)慣,可以實(shí)現(xiàn)事半功倍。
1.1 Halcon12和Halcon20不同版本的幫助有所不同
在Halcon12中,有set_font和set_display_font兩個(gè)算子,其中set_display_font是本地函數(shù)形式,所以最終的實(shí)現(xiàn)算子為set_font.
按照不同的系統(tǒng)環(huán)境下,使用方法略有不同:
不同的系統(tǒng)下使用的方法不同,原本以為比較簡(jiǎn)單,直接按照文檔的example來(lái)設(shè)定就行,但是win下的字體比較多,這種方法可行,其他的系統(tǒng)下未必有指定的Font類型,所以我在Linux下一直提示的Font類型錯(cuò)誤;
再翻一下最新版Halcon20版本的文檔
新版介紹簡(jiǎn)單了很多,如果只修改字體,直接使用set_system(‘default_font’,Font)設(shè)置默認(rèn)字體就行,這里還進(jìn)行提示,根據(jù)不同的系統(tǒng),獲取支持的字體進(jìn)行設(shè)置,最后給出了比較簡(jiǎn)潔的example做參考。
1.2在win和LINUX下用Qt實(shí)現(xiàn)字體修改
根據(jù)之前的幫助文檔,可以在Qt下實(shí)現(xiàn)字體修改
//設(shè)定Halcon窗口文字字體
HTuple hv_OS;
GetSystem("operating_system",&hv_OS);
if(hv_OS.TupleSubstr(0,2) == HTuple("Win")){
//方法一:直接設(shè)置Font參數(shù)
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")){
//方法二:獲取系統(tǒng)下的字體,選擇第一個(gè)加載使用
HTuple hv_Font,hv_FontWithSize;
QueryFont(hv_WindowHandleCurrent,&hv_Font);
hv_FontWithSize = HTuple(hv_Font[0]) + "-40";
SetFont(hv_WindowHandleCurrent,hv_FontWithSize);
}
由于在Linux下設(shè)置了好幾種字體都顯示錯(cuò)誤,所以直接使用第二種方法,獲取Linux支持的字體進(jìn)行設(shè)置。
根據(jù)上述方法設(shè)定的效果如下文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-841926.html
1.3相關(guān)實(shí)現(xiàn)Demo程序
Halcon窗口顯示文字字體修改文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-841926.html
到了這里,關(guān)于[Qt學(xué)習(xí)筆記]Halcon窗口界面上顯示文字的字體尺寸、樣式修改的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!