关于qt5:一Halcon窗口界面上显示文字的字体尺寸样式修改

10次阅读

共计 1048 个字符,预计需要花费 3 分钟才能阅读完成。

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 窗口显示文字字体批改

正文完
 0