当前位置: 首页 > article >正文

[Qt学习笔记]Halcon窗口界面上显示文字的字体尺寸、样式修改

1、查看Halcon帮助文档

养成良好的查资料习惯,可以实现事半功倍。

1.1 Halcon12和Halcon20不同版本的帮助有所不同

在Halcon12中,有set_font和set_display_font两个算子,其中set_display_font是本地函数形式,所以最终的实现算子为set_font.
按照不同的系统环境下,使用方法略有不同:
WinSystem.PNG

LinuxSystem.PNG

OSsystem.PNG
不同的系统下使用的方法不同,原本以为比较简单,直接按照文档的example来设定就行,但是win下的字体比较多,这种方法可行,其他的系统下未必有指定的Font类型,所以我在Linux下一直提示的Font类型错误;
再翻一下最新版Halcon20版本的文档
新版介绍简单了很多,如果只修改字体,直接使用set_system(‘default_font’,Font)设置默认字体就行,这里还进行提示,根据不同的系统,获取支持的字体进行设置,最后给出了比较简洁的example做参考。
4.PNG

5.PNG

6.PNG

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支持的字体进行设置。
根据上述方法设定的效果如下
7.PNG

1.3相关实现Demo程序

Halcon窗口显示文字字体修改


http://www.kler.cn/a/274738.html

相关文章:

  • Spring(二)---基于注解的方式实现Bean管理和注入属性
  • 5G 模组 RG500Q常用AT命令
  • 【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap
  • 投标心态:如何在“标海战术”中保持清醒的头脑?
  • Go vendor
  • 使用Python编辑JPEG文件EXIF字段中的缩略图
  • GO-Gin-Example 第六部分 将Golang应用部署到Docker
  • 【MySQL】知识点 + 1
  • 什么是Spring Boot
  • 字符串函数---(1)
  • 离散制造企业MES与流程企业MES的区别
  • LiveGBS流媒体平台GB/T28181功能-HTTPS 服务支持配置开启什么时候需要开启HTTPS测试SSL证书配置HTTPS测试证书
  • 技术周刊 116 期:Visual Copilot、INP、Kimi 支持 200 万字上下文、Grok 开源、Figure 01、Open Sora 开源
  • 算法---二分查找练习-3(山脉数组的顶峰索引)
  • 数据仓库的两种建模方法
  • 每日五道java面试题之mybatis篇(五)
  • HTML_CSS学习:超链接、列表、表格、表格常用属性
  • opencv逐帧获取视频图片
  • 记录C++中,子类同名属性并不能完全覆盖父类属性的问题
  • Android Studio实现内容丰富的安卓图书馆座位图书预约系统
  • Tcl学习笔记(一)——环境搭建及基本语法
  • 开源数据集 nuScenes 之 3D Occupancy Prediction
  • 绝地求生:现在购买通行证还能兑换成长型武器吗?
  • java volatile
  • 【Linux】从零开始认识进程 — 前篇
  • 【数据库】MySQL库与表的基本操作