1.学习MiniGUI上使用TrueType字体时,在网上找了好多文章,总算是搞定了。不过话说这世界变化快,minigui也在更新迭代,这些文章大都是2年前写的,看这些文章对我入门有帮助,不过也被一些过时的内容坑了不次。在这里将我的过程做一个记录以备用。
新版本MiniGUI3.2.02.目前网上关于minigui的文章都是针对经典版本MiniGUI3.0.12的,如果你现在访问MiniGUI的官网(http://www.minigui.org/zhcn)你会发现MiniGUI就在最近已经悄悄正式发布了MiniGUI3.2.0,这个新一个主要的改进就是提供了64位版本和对触屏设备的支持(mGNCS4Touch),后面这个新的特性我还没有进一步了解,不过提供64位版本,对我来说,可是大大方便了我的开发。因为现在多数人和我一样已经很少用32位的系统,为了在MiniGUI框架下开发就得多装一个32位的ubuntu系统。现在有了64位的版本,就不用频繁切换开发环境了。
3.参见《MiniGUI3.2.0Released(2018/07/12)》
4.如果你是新入手学习MiniGUI框架,强烈建议你使用MiniGUI3.2.0,因为它使用更方便。如果你的项目已经在MiniGUI3.0.12开发一阵子了,也可以直接升级到3.2.0。为什么我敢这么说呢?唉,说说自己的经历吧。大概一个多月前我开发入门做嵌入式开发,找到MiniGUI这个框架。开始也是照着网上的教程,自己编译手工MiniGUI代码,又是手工安装miniStudio,好一阵折腾,等折腾好了,然后发现在MiniGUI官网上有这一篇文章:
5.《SettingupDevelopmentEnvironmentonUbuntuLinux》
6.文章很简单,一看就明白,就是在Ubuntu16.04下设置MiniGUI开发环境的步骤。我才明白MiniGUI官方已经提供了MiniGUI的package,可以直接用apt-get方式安装MiniGUI以及miniStudio。这比自己编译安装省太多事儿啦,几条apt-get执行完就搞定了。早知道就这个,我还浪费那么多时间手工编译干嘛(学会手工编译MiniGUI也是必要的,因为后面向开发板移植的阶段要用到)
7.然后我就在这个环境下开始了项目开发,边看着MiniGUI3.0.12的文档(MiniGUI3.0.12),边摸索就算入了门,这一个多月进展顺利。
8.今天我发现MiniGUI正式升级了,想到apt-get升级一下MiniGUI的版本,查看版本时发现,我一个月前安装的libminigui_ths版本号已经是3.2.0!
9.也就是说至少一个月前就MiniGU官网的服务器上就已经提示了3.2.0的二进制版本,7月12日才正式发布,靠,还有这波操作?我不知不觉已经照着3.0.12的文档在3.2.0上工作了这么长时间,目前没发现API接口与3.0.12有什么不同或不兼容。也就是说基于3.0.12版本开发的项目可以直接升级到3.2.0。
搭建MiniGUI3.2.0开发环境10.安装MiniGUI3.2.0很简单前一节已经讲了参照这篇官方说明:《SettingupDevelopmentEnvironmentonUbuntuLinux》几分钟就能搞定了。minigui提供了miniStudio这个所见即所得的界面开发工具可以大大提高开发效率,建议使用,miniStudio是基于eclipse的开发工具,所以要安装eclipse。如果你还不会安装用eclipse,那可能要多花些时间安装eclipse。
TrueType字体支持11.MiniGUI3.2.0默认已经基于freetype2提供了对TrueType字体的支持。打开/usr/local/include/minigui/mgconfig.h,就能看到_MGFONT_FT2已经打开,说明MiniGUI3.2.0基于freetype2提供了对TrueType字体的支持(_MGFONT_TTF代表基于freetype1支持TrueType,在这里是关闭的)。
12.所以我们不必像MiniGUI3.0.12那样为了支持TrueType而专门编译MiniGUI。
找一个TrueType字库试试13.TrueType字库好找,你的C:WindowsFonts下面就有很多后缀为ttf的字体文件,如下图:比如黑体(simhei.ttf),楷体(simkai.ttf),幼圆(SIMYOU.TTF),仿宋(simfang.ttf),英文字体(times.ttf),英文字体(arial.ttf)。
14.将字体复制到你的ubuntu开发环境中(注意大小写)。你可以将字体直接复制到MiniGUI的系统字体目录下(/usr/local/share/minigui/res/font),也可以复制到你的项目字体资源文件夹下(/you/minigui/project/path/res/font),
15.如果你是用在eclipse中创建的MiniGUI项目,就会有一个res资源文件夹,默认res下是没有font文件夹的你要手工建一个。
16.NOTE:如果你是在ubuntu虚拟机下开发,复制字体文件到虚拟机后,最好执行chmod命令修改一下文件权限:chmod664your_font_file
修改MiniGUI.cfg17.有了ttf字体文件,MiniGUI并不会自动就知道的,你需要告诉它有哪些字体可用,这就需要修改MiniGUI的系统配置参数/usr/local/etc/MiniGUI.cfg:
18.(要管理员权限才能编辑)sudogedit/usr/local/etc/MiniGUI.cfg
19.如下图打开系统配置文件,如下格式将ttf的位置和字体类型写入配置文件。本例中加了5种字体arial,times,msyh(微软雅黑),simyou(幼圆),simkai(楷体),(千万注意不要眼花修改到[type1fonts]下,否则就找不到字体了,我就干过好几次,看起来和[truetypefonts]太像了)
20.注意:
name0-N是每个字体的名字,这可不是随便命名的,命名规则参见《MINIGUI-USER-MANUAL-V3.0》,3.1.5小节。fontfile0~N在指定字体文件位置时,可以用绝对路径,也可以如上图使用相对路径,如果使用相对路径,这个相对路径是基于minigui系统的资源文件夹(/usr/local/share/minigui/res),或项目的资源文件夹(/you/minigui/project/path)[创建eclipse创建的MiniGUIproject才有这个文件夹结构]MiniGUI搜索资源的方式21.为什么放在项目的资源文件夹下,MiniGUI也能找到字体?因为miniStudio生成的main代码中,已经调用SetResPath将当前文件夹加入资源搜索路径,你去查查你的main入口函数
intMiniGUIMain(intargc,constchar*argv[]){#ifdefntStartWindowExMSGMsg;mMainWnd*mWin;#ifdef_MGNCS_INCORE_RESncsSetEtcHandle(ncsGetIncoreEtc());ncsInitialize();hPackagencsLoadIncoreResPackage();#elsecharf_package[MAX_PATH];ncsInitialize();sprintf(f_package,"%s","res/facelock.res");//将当前文件夹加入资源搜索路径SetResPath("./");hPackagencsLoadResPackage(f_package);#endif。。。}miniStudio22.好了,经过上一步,我们已经在MiniGUI的系统配置中加入了TrueType字体,下面我们可以试试在miniStudio中使用增加的矢量字体了
创建一个MiniGUIProject23.首先我们需要用于测试的MiniGUI项目,如下图打开系统菜单File-New-Other,如下图找到MiniGUIProject.就可以创建一个简单的MiniGUIProject.
miniStudio选择TrueType字体24.打开菜单File-New创建一个新的模板:
25.直到目前,都很顺序,然后选择字体,问题了来了。。。怎么没有我们刚刚安装的TrueType字体?
26.遇到这个问题时,我内心是崩溃的,miniStudio不是开源的,用户手册也没讲到这么细。然后我想到之前在《MINIGUI-USER-MANUAL-V3.0》看到的关于MiniGUI.cfg的内容(第3章),PDF文件截图如下:
27.如上图红框标的文字,应用程序首先是找当前文件夹下的MiniGUI.cfg,miniStudio这个开发工具的图形界面(guibuilder)应该也是一个基于于MiniGUI框架开发的GUI应用。所以它应该是有一个自己的MiniGUI.cfg。
28.so,我想明白了。miniStudio这个开发工具的图形界面(guibuilder)的当前文件夹是/usr/local/etc/guibuilder/,在这里找到了它的MiniGUI.cfg
29.打开/usr/local/etc/guibuilder/MiniGUI.cfg,果然,这里还是默认的设置,如前面修改/usr/local/etc/MiniGUI.cfg一样,添加TrueType字体。再次打开miniStudio终于看到了选择一个楷体试试,呵呵,TrueType字体加载成功
30.本文未完,下半部分请看《minigui3.2.0:基于miniStudio应用TrueType字体的过程(2)》
参考资料31.《SettingupDevelopmentEnvironmentonUbuntuLinux》《14.7字体的渲染特效》
minigui3.2.0:基于miniStudio应用TrueType字体的过程1-英文mini小字体-微信小程序用什么字体
浏览量:2706
时间:
来源:10km
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










