前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >minigui 3.2.0:基于miniStudio应用TrueType字体的过程(1)

minigui 3.2.0:基于miniStudio应用TrueType字体的过程(1)

作者头像
10km
发布于 2019-05-25 14:25:52
发布于 2019-05-25 14:25:52
1.2K00
代码可运行
举报
文章被收录于专栏:10km的专栏10km的专栏
运行总次数:0
代码可运行

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433691

学习MiniGUI上使用TrueType字体时,在网上找了好多文章,总算是搞定了。不过话说这世界变化快,minigui也在更新迭代,这些文章大都是2年前写的,看这些文章对我入门有帮助,不过也被一些过时的内容坑了不次。在这里将我的过程做一个记录以备用。

新版本 MiniGUI 3.2.0

目前网上关于minigui的文章都是针对经典版本MiniGUI 3.0.12的,如果你现在访问MiniGUI的官网(http://www.minigui.org/zhcn)你会发现MiniGUI就在最近已经悄悄正式发布了MiniGUI 3.2.0,这个新一个主要的改进就是提供了64位版本和对触屏设备的支持(mGNCS4Touch),后面这个新的特性我还没有进一步了解,不过提供64位版本,对我来说,可是大大方便了我的开发。

因为现在多数人和我一样已经很少用32位的系统,为了在MiniGUI框架下开发就得多装一个32位的ubuntu系统。现在有了64位的版本,就不用频繁切换开发环境了。

参见《MiniGUI 3.2.0 Released(2018/07/12)》

如果你是新入手学习MiniGUI框架,强烈建议你使用MiniGUI 3.2.0,因为它使用更方便。如果你的项目已经在MiniGUI 3.0.12开发一阵子了,也可以直接升级到3.2.0。为什么我敢这么说呢?唉,说说自己的经历吧。

大概一个多月前我开发入门做嵌入式开发,找到MiniGUI这个框架。开始也是照着网上的教程,自己编译手工MiniGUI代码,又是手工安装miniStudio,好一阵折腾,等折腾好了,然后发现在MiniGUI官网上有这一篇文章:

《Setting up Development Environment on Ubuntu Linux》

文章很简单,一看就明白,就是在Ubuntu 16.04下设置MiniGUI开发环境的步骤。我才明白 MiniGUI官方已经提供了MiniGUI的package,可以直接用apt-get方式安装MiniGUI以及miniStudio。这比自己编译安装省太多事儿啦,几条apt-get执行完就搞定了。早知道就这个,我还浪费那么多时间手工编译干嘛(学会手工编译MiniGUI也是必要的,因为后面向开发板移植的阶段要用到)

然后我就在这个环境下开始了项目开发,边看着MiniGUI 3.0.12的文档(MiniGUI 3.0.12),边摸索就算入了门,这一个多月进展顺利。

今天我发现MiniGUI正式升级了,想到apt-get升级一下MiniGUI的版本,查看版本时发现,我一个月前安装的libminigui_ths版本号已经是3.2.0

也就是说至少一个月前就MiniGU官网的服务器上就已经提示了3.2.0的二进制版本,7月12日才正式发布,靠,还有这波操作?

我不知不觉已经照着3.0.12的文档在3.2.0上工作了这么长时间,目前没发现API接口与3.0.12有什么不同或不兼容。也就是说基于3.0.12版本开发的项目可以直接升级到3.2.0

搭建MiniGUI 3.2.0 开发环境

安装MiniGUI 3.2.0很简单前一节已经讲了参照这篇官方说明:《Setting up Development Environment on Ubuntu Linux》几分钟就能搞定了。

minigui提供了miniStudio这个所见即所得的界面开发工具可以大大提高开发效率,建议使用,miniStudio是基于eclipse的开发工具,所以要安装eclipse。

如果你还不会安装用eclipse,那可能要多花些时间安装eclipse。

TrueType字体支持

MiniGUI 3.2.0默认已经基于freetype2提供了对TrueType字体的支持。

打开/usr/local/include/minigui/mgconfig.h,就能看到_MGFONT_FT2已经打开,说明MiniGUI 3.2.0基于freetype2提供了对TrueType字体的支持(_MGFONT_TTF代表基于freetype1支持TrueType,在这里是关闭的)。

所以我们不必像MiniGUI 3.0.12那样为了支持TrueType而专门编译MiniGUI。

找一个TrueType 字库试试

TrueType 字库好找,你的C:\Windows\Fonts下面就有很多后缀为ttf的字体文件,如下图:比如黑体(simhei.ttf),楷体(simkai.ttf),幼圆(SIMYOU.TTF),仿宋(simfang.ttf),英文字体(times.ttf),英文字体(arial.ttf)。

将字体复制到你的ubuntu开发环境中(注意大小写)。你可以将字体直接复制到MiniGUI的系统字体目录下(/usr/local/share/minigui/res/font),也可以复制到你的项目字体资源文件夹下(/you/minigui/project/path/res/font),

如果你是用在eclipse中创建的MiniGUI项目,就会有一个res资源文件夹,默认res下是没有font文件夹的你要手工建一个。 NOTE:如果你是在ubuntu虚拟机下开发,复制字体文件到虚拟机后,最好执行chmod命令修改一下文件权限: chmod 664 your_font_file

修改MiniGUI.cfg

有了ttf字体文件,MiniGUI并不会自动就知道的,你需要告诉它有哪些字体可用,这就需要修改MiniGUI的系统配置参数/usr/local/etc/MiniGUI.cfg:

(要管理员权限才能编辑 ) sudo gedit /usr/local/etc/MiniGUI.cfg

如下图打开系统配置文件,如下格式将ttf的位置和字体类型写入配置文件。本例中加了5种字体arial,times,msyh(微软雅黑),simyou(幼圆),simkai(楷体),(千万注意不要眼花修改到[type1fonts]下,否则就找不到字体了,我就干过好几次,看起来和[truetypefonts]太像了)

注意:

  1. name0-N是每个字体的名字,这可不是随便命名的,命名规则参见《MINIGUI-USER-MANUAL-V3.0》3.1.5 小节
  2. fontfile0~N在指定字体文件位置时,可以用绝对路径,也可以如上图使用相对路径,如果使用相对路径,这个相对路径是基于minigui系统的资源文件夹(/usr/local/share/minigui/res),或项目的资源文件夹(/you/minigui/project/path)创建eclipse创建的MiniGUI project才有这个文件夹结构

MiniGUI搜索资源的方式

为什么放在项目的资源文件夹下,MiniGUI也能找到字体?

因为miniStudio生成的main代码中,已经调用SetResPath将当前文件夹加入资源搜索路径,你去查查你的main入口函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int MiniGUIMain(int argc, const char* argv[])
{

#ifdef ntStartWindowEx
    MSG Msg;
    mMainWnd *mWin;

#ifdef _MGNCS_INCORE_RES
    ncsSetEtcHandle(ncsGetIncoreEtc());
    ncsInitialize();

    hPackage = ncsLoadIncoreResPackage();
#else
    char f_package[MAX_PATH];

    ncsInitialize();
    sprintf(f_package, "%s", "res/facelock.res");
    // 将当前文件夹加入资源搜索路径
    SetResPath("./");

    hPackage = ncsLoadResPackage (f_package);
#endif

。。。

}

miniStudio

好了,经过上一步,我们已经在MiniGUI的系统配置中加入了TrueType字体,下面我们可以试试在miniStudio中使用增加的矢量字体了

创建一个MiniGUI Project

首先我们 需要用于测试的MiniGUI项目,如下图打开系统菜单File->New->Other,如下图找到MiniGUI Project.就可以创建一个简单的MiniGUI Project.

miniStudio 选择TrueType字体

打开菜单File->New创建一个新的模板:

直到目前,都很顺序,然后选择字体 ,问题了来了。。。怎么没有我们刚刚安装的TrueType字体?

遇到这个问题时,我内心是崩溃的,miniStudio不是开源的,用户手册也没讲到这么细。然后我想到之前在《MINIGUI-USER-MANUAL-V3.0》看到的关于MiniGUI.cfg的内容(第3章),PDF文件截图如下:

如上图红框标的文字,应用程序首先是找当前文件夹下的MiniGUI.cfg,miniStudio这个开发工具的图形界面(guibuilder)应该也是一个基于于MiniGUI框架开发的GUI应用。所以它应该是有一个自己的MiniGUI.cfg

so,我想明白了。miniStudio这个开发工具的图形界面(guibuilder)的当前文件夹是/usr/local/etc/guibuilder/,在这里找到了它的MiniGUI.cfg

打开/usr/local/etc/guibuilder/MiniGUI.cfg,果然,这里还是默认的设置,

如前面修改/usr/local/etc/MiniGUI.cfg一样,添加TrueType字体。

再次打开miniStudio终于看到了

选择一个楷体试试,呵呵,TrueType字体加载成功

本文未完,下半部分请看

《minigui 3.2.0:基于miniStudio应用TrueType字体的过程(2)》

参考资料

《Setting up Development Environment on Ubuntu Linux》

《14.7 字体的渲染特效》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年07月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
minigui 3.2.0:基于miniStudio应用TrueType字体的过程(2)-字体边缘锯齿,字库剪裁
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/81114067
10km
2019/05/26
1.3K0
不得不说,minigui真的很坑
开发项目在嵌入式平台上使用MiniGui作为用户界面开发工具,在工作之余准备在ubuntu14.04上搭建一个测试环境,这样代码测试起来比较方便。
杨永贞
2020/08/05
3.8K0
不得不说,minigui真的很坑
minigui 3.2.0:通过环境变量修改minigui的运行参数
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83422859
10km
2019/05/25
6930
minigui:自定义字体文件的安装位置(install location for custom font)
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83381762
10km
2019/05/25
6140
【第3版emWin教程】第32章 emWin6.x的矢量字体(支持汉字全字库,Unicode编码,QSPI Flash方案)
教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第32章 emWin6.x的矢量字体(支持汉字全字库,Uni
Simon223
2021/09/06
7090
minigui:mgplus交叉编译警告 include locationi
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83088803
10km
2019/05/25
8830
minigui:静态编译连接mgncs库时遇到的xml2的问题
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83047021
10km
2019/05/25
1.9K0
全志 Tina Linux 图形系统 框架介绍 最全介绍 MiniGUI、QT5、EFL、GTK+(WebkitGtk、Midori)、DirectFB、Wayland
本文档将介绍 Allwinner Tina Linux 中已经移植好的窗口系统,以及怎么使用,包括 MiniGUI、QT5、EFL、GTK+(WebkitGtk、Midori)、DirectFB、Wayland,整体结构 如下:
韦东山
2022/12/28
17.5K0
全志 Tina Linux 图形系统 框架介绍 最全介绍 MiniGUI、QT5、EFL、GTK+(WebkitGtk、Midori)、DirectFB、Wayland
ONLYOFFICE界面汉化
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/79338286
hotqin888
2018/09/11
3.5K0
ONLYOFFICE界面汉化
配置nginx支持php
一、检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过。
conanma
2021/12/05
2.9K0
ASP.NET MVC使用Bootstrap系列(1)——开始使用Bootstrap
作为一名Web开发者而言,如果不借助任何前端框架,从零开始使用HTML和CSS来构建友好的页面是非常困难的。特别是对于Windows Form的开发者而言,更是难上加难。 正是由于这样的原因,Bootstrap诞生了。Twitter Bootstrap为开发者提供了丰富的CSS样式、组件、插件、响应式布局等。同时微软已经完全集成在ASP.NET MVC 模板中。 Bootstrap结构介绍 你可以通过http://getbootstrap.com.来下载最新版本的Bootstrap。 解压文件夹后,可以
用户1161731
2018/01/11
3.1K0
ASP.NET MVC使用Bootstrap系列(1)——开始使用Bootstrap
为Linux发行版安装中文字体
前文提到博主为自己的 ThinkPad E450 安装了一款来自爱尔兰的 Linux/GNU 发行版 作为主力系统使用。近期需要进行文字处理工作,安装了 WPS 2019 Linux 版 ,但是发现这款外来的 Linux/GNU 发行版 并没有自带一些常用的中文字体,如 宋体、仿宋、黑体 等字体,经过一番检索,博主使用从 Windows 10 家庭中文版中提取出中文字体导入,并在系统中刷新字体以使字体生效。下面就来讲讲详细步骤:
宋天伦
2020/07/16
7.3K0
让你的网站用上炫酷的中文字体
随着当前 Web 技术的日新月异,网页界面内容越来越丰富,让人眼花缭乱,其中就包括了网页中的各种自定义字体。
米开朗基杨
2019/12/19
2.8K0
Android O:使用自定义字体资源
前言 Android O中的新功能之一是使用自定义字体资源。在这篇文章中,我们一起来看看如何在我们的应用程序中使用它们。 在Android O之前,在我们的应用中使用自定义字体有多困难?我们有两个选择
code_horse
2018/07/02
2.5K0
简单高效的实现 Android App 全局字体替换
Android O推出了一项新的功能「Fonts in XML」,借助这项功能,我们能够像使用其他资源文件一样使用字体,比较方便地实现App全局字体的替换。 为了能够在API 14或者以上的设备上使用Fonts in XML特性,我们需要使用到Support Library 26。更多的内容可以参考「使用Support Library」小节。 在Android Studio中按照如下步骤将字体作为资源文件添加至工程: 右键单击项目的 app / res 文件夹,然后选择 New > Android reso
非著名程序员
2018/02/02
4.2K0
简单高效的实现 Android App 全局字体替换
Ubuntu 下安装 Texlive 并设置 CTeX 中文套装
下载地址:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/texlive2013-20130530.iso
用户8704835
2021/06/07
3.7K0
Ubuntu16 安装Hadoop 3.2.0 记录【全网最详细,最全,多图】
我想使用Xshell连接Vm里面的虚拟机,所以先ifconfig查询IP,通过Xshell登录。
无道
2019/11/13
1.3K0
Ubuntu16 安装Hadoop 3.2.0 记录【全网最详细,最全,多图】
web字体规范
对于设计稿的解析中,肯定是有些设计稿有特殊的字体,而这些字体可能只有设计师才有,或者只有前端拓展了系统字库才能显示器正确效果。但对于前端页面的终极使用者,他们可能系统没有这些字体,那么对于这些特殊字体究竟该如何处理? 本文通过与设计,产品,前端的统一沟通,达成共识如下。请各个前端 按照这个原则去对应的解析实现设计ui效果。
RobinsonZhang
2018/08/28
2.9K0
web字体规范
如何在 Windows 上 使用 ONLYOFFICE 协作编辑文档
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/79337881
hotqin888
2018/09/11
3.4K0
如何在 Windows 上 使用 ONLYOFFICE 协作编辑文档
Ubuntu安装字体and切换默认字体
Ubuntu系统安装好后,默认字体对于中文的支持看上去不太美丽,于是很多朋友可能需要设置系统的默认字体为自己喜欢的字体。本文主要介绍如何解决这两个问题。
GitOPEN
2019/01/29
7.5K0
推荐阅读
相关推荐
minigui 3.2.0:基于miniStudio应用TrueType字体的过程(2)-字体边缘锯齿,字库剪裁
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验