WhyCan Forum(哇酷开发者社区)

我们能随心所欲"有问题百度(谷歌)一下", 这得感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2019-05-21 11:43:05

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

@熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

QQ20190521114630.png

离线

#2 2019-05-21 11:47:12

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

源码下载: LittleVGL_qt_ttf_20190521.7z






2019-05-22 更新:
-----------------------------
作者添加 TTF cache功能: LittleVGL_qt_ttf_add_cache_20190522.7z







2019-05-26 更新:
-----------------------------
静态链接的可执行文件: qt-mouse-event-release.7z

Qt5.6.3 编译, WinXP 32bit 应该可以运行: https://whycan.cn/t_2395.html






2019-05-27 更新 (10楼):
-----------------------------
使用cache,不使用操作系统的文件读取功能(需要事先把ttf文件相办法加载到内存中)。
LittleVGL_qt_ttf_add_cache_no_OSFileIO.rar

离线

#3 2019-05-21 11:48:05

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

由 @熊掌 QQ 370537635 原创
由 @熊掌 QQ 370537635 原创
由 @熊掌 QQ 370537635 原创




9楼/10楼的 @OggyJFX 就是作者

商业使用请打赏原创作者






littlevgl 讨论群: 516836432

离线

#4 2019-05-21 16:55:09

rf
会员
注册时间: 2019-05-21
累计积分: 12

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

汉字是什么编码?我用vs编辑器默认utf8不显示。。

离线

#5 2019-05-21 17:13:35

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

QQ20190521171507.png


UTF-8 编码

离线

#6 2019-05-22 11:00:13

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

作者添加 TTF cache功能: LittleVGL_qt_ttf_add_cache_20190522.7z

离线

#7 2019-05-22 21:02:05

rf
会员
注册时间: 2019-05-21
累计积分: 12

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

字体小的时候,有些时候,上对齐或者下对齐都不大好看         //居中对齐         copy_bitmap(sbit->buffer, sbit->width, sbit->height, sbit->left,                     (lv_font_ttf.h_px - sbit->height)>>1,                     sbit->xadvance);这样会好看很多

离线

#8 2019-05-26 22:30:36

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

静态链接的可执行文件: qt-mouse-event-release.7z

Qt5.6.3 编译, WinXP 32bit 应该可以运行: https://whycan.cn/t_2395.html

离线

#9 2019-05-27 08:10:11

还能这么玩
会员
注册时间: 2019-04-14
累计积分: 119

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

rf 说:

字体小的时候,有些时候,上对齐或者下对齐都不大好看         
//居中对齐         
copy_bitmap(sbit->buffer, sbit->width, sbit->height, sbit->left,                     (lv_font_ttf.h_px - sbit->height)>>1,                     sbit->xadvance);

这样会好看很多

我测了一下,    (lv_font_ttf.h_px - sbit->height) 结果是 3, 右移之后计算结果是1, 根本没有改变。

离线

#10 2019-05-27 09:55:00

OggyJFX
会员
注册时间: 2019-05-21
累计积分: 101

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

QQ20190528221725.png

QQ20190528221813.png

使用cache,不使用操作系统的文件读取功能(需要事先把ttf文件相办法加载到内存中)。
LittleVGL_qt_ttf_add_cache_no_OSFileIO.rar

离线

#11 2019-05-27 10:02:24

OggyJFX
会员
注册时间: 2019-05-21
累计积分: 101

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

rf 说:

字体小的时候,有些时候,上对齐或者下对齐都不大好看         //居中对齐         copy_bitmap(sbit->buffer, sbit->width, sbit->height, sbit->left,                     (lv_font_ttf.h_px - sbit->height)>>1,                     sbit->xadvance);这样会好看很多

这个对齐的问题,是由于lvgl自己的原因。
我为了演示,故意把ttf的字体高度设置成20,添加到一个40的字体后面。lvgl对于不同高度的字体显示的时候,总是上对齐。
如果要改这个问题,只能更改lvgl的源码。

离线

#12 2019-05-27 10:53:42

路人甲
会员
注册时间: 2017-09-07
累计积分: 148

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

谢谢作者分享。

我试了一下, 模拟器有点bug, 退出窗口(进程)的时候没有先通知 线程退出,

导致出现错误提示:

QThread: Destroyed while thread is still running
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.


然后我改了一点点:

MainWindow::~MainWindow()
{
    gui_thread.exit(0);
    Sleep(50);
    delete ui;
}

然而还是一样的问题, 跟踪了一下


gui_thread.exit(0);

根本不能这样结束线程.

看来得想别的线程通讯方法才行。

2019-05-27_105146.png

离线

#13 2019-05-27 10:54:44

路人甲
会员
注册时间: 2017-09-07
累计积分: 148

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

只是退出的时候有点小bug, 但是我有点代码洁癖, 就是忍不住要改, 哈哈!

离线

#14 2019-06-03 19:15:47

tango_zhu
会员
注册时间: 2018-04-12
累计积分: 46

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

这个能够自定义字体大小吗 是矢量字体吗  还是做的字体是多大就是多大

离线

#15 2019-06-03 21:35:00

firstman
会员
注册时间: 2019-04-06
累计积分: 278

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

tango_zhu 说:

这个能够自定义字体大小吗 是矢量字体吗  还是做的字体是多大就是多大

对, 想生成多大就多大, 看下晕哥发的这个帖子就知道了:
https://whycan.cn/t_741.html

离线

#16 2019-07-07 15:57:24

john78
会员
注册时间: 2018-07-19
累计积分: 177

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

字间距貌似有点大,怎么调整?大佬有研究过?

离线

#17 2019-09-03 14:55:21

我思故我在
会员
注册时间: 2019-09-03
累计积分: 184

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

2019-09-03_144919.png

各位大佬,为什么我用官方 VC2017 的demo工程, 借用楼主的代码, 这里输入汉字, 模拟器显示都是框框框呢?

离线

#18 2019-09-03 15:51:51

我思故我在
会员
注册时间: 2019-09-03
累计积分: 184

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

2019-09-03_154652.png

demo.c 文件明明另存为 UTF8 With BOM 了, 但是代码里面的字符串还是 GBK ???

我佛了 ...

离线

#19 2019-09-03 15:57:55

我思故我在
会员
注册时间: 2019-09-03
累计积分: 184

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

2019-09-03_155611.png

https://bianma.supfree.net/chaye.asp?id=6211
https://bianma.supfree.net/chaye.asp?id=601D

通过上面的链接,找到 UTF8 编码, 然后硬编码进去,就正常了。 出一身汗

离线

#20 2019-09-03 16:02:04

firstman
会员
注册时间: 2019-04-06
累计积分: 278

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

https://stackoverflow.com/questions/688760/how-to-create-a-utf-8-string-literal-in-visual-c-2008

#pragma execution_character_set("utf-8")

这个挺好用的, 一般人我不告诉他, 斜眼笑.gif

离线

#21 2019-09-03 16:04:26

我思故我在
会员
注册时间: 2019-09-03
累计积分: 184

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

2019-09-03_165338.png

谢谢楼上大神, 果然可以了 ^_^

最近编辑记录 我思故我在 (2019-09-03 16:55:11)

离线

#22 2019-10-22 08:56:08

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

离线

#23 2019-11-07 13:23:06

silong1126
会员
注册时间: 2019-11-07
累计积分: 32

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

厉害厉害。

离线

#24 2019-11-22 15:53:22

超级萌新
会员
注册时间: 2018-05-04
累计积分: 406

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

好帖,顶一顶。



QThread: Destroyed while thread is still running
15:56:29: 程序异常结束。

这个线程释放问题, 哪位大佬有没有搞定?

离线

#25 2019-11-22 16:53:43

xgui
会员
注册时间: 2019-09-07
累计积分: 224

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

我改了一下, 基本没问题了:

lv_thread.h 添加:

public:
    bool isrun;

lv_thread.cpp :

void lv_thread::run()
{
    isrun = true;
    QElapsedTimer timer;
    qint64 ms_elapsed;

    ui_dirty = false;

    lv_init();
    lv_drv_register();
    lv_font_ttf_init();
    demo_create();

    timer.start();

    while(isrun)
    {
        lv_task_handler();
        if(ui_dirty)
        {
            ui_dirty = false;
            emit UiUpdate();
        }
        msleep(1);
        ms_elapsed = timer.elapsed();
        timer.restart();
        lv_tick_inc(ms_elapsed);
    }
}

mainwindow.cpp :

MainWindow::~MainWindow()
{
    gui_thread.isrun = false;

    gui_thread.wait(1000000);
    delete ui;
}

这样就不会出错了, 窗口退出前, 先退出线程,可能还有别的问题,反正这个问题可以解决了。

离线

#26 2020-04-15 15:11:13

TANK
会员
注册时间: 2020-04-02
累计积分: 11

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

这个硬编码也是很好用,哈哈哈哈

离线

#27 2020-04-16 19:39:24

liuchangyin
会员
注册时间: 2020-03-17
累计积分: 194

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

效果不错

离线

#28 2020-04-22 00:05:05

大海
会员
注册时间: 2020-04-21
累计积分: 10

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

看不懂帮顶

离线

#29 2020-05-06 13:51:54

豆豆上将
会员
注册时间: 2020-04-15
累计积分: 2

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

可以在STM32上用吗?

离线

#30 2020-05-07 17:30:30

zq190kg
会员
注册时间: 2019-08-10
累计积分: 12

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

想在arm9上用,不知道是否可行

离线

#31 2020-05-07 18:05:45

歌以咏志
会员
注册时间: 2019-09-21
累计积分: 160

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

zq190kg 说:

想在arm9上用,不知道是否可行

没有问题, 坛子里面好多大佬都用 f1c100s + linux + lvgl 量产了.

离线

#32 2020-05-16 15:16:20

simon
会员
注册时间: 2019-05-11
累计积分: 5

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

可以在esp32上用 ?

离线

#33 2020-05-19 12:22:56

liuchangyin
会员
注册时间: 2020-03-17
累计积分: 194

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

simon 说:

可以在esp32上用 ?

肯定可以,只要移植成功,完全没任何问题,一般单片机就可以,esp32配置更不用说

离线

#34 2020-05-24 13:45:39

LRW
会员
注册时间: 2020-05-20
累计积分: 0

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

谢谢分享!下来试试效果

离线

#35 昨天 15:02:02

Blizzard
会员
注册时间: 2019-09-11
累计积分: 5

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

我思故我在 说:

https://whycan.cn/files/members/1947/2019-09-03_165338.png

谢谢楼上大神, 果然可以了 ^_^


大佬的vs工程能开源下吗,看看需要包含freetype的哪些文件

离线

#36 今天 14:24:36

zhaoxunren
会员
注册时间: 2020-06-20
累计积分: 16

Re: @熊掌 开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库

对于无法直接使用TTF库的RTOS,可以先使用阿里兄的字体转换工具转成.C或.bin文件加载带代码,然后通过控件应用字体,实现字体库绑定。

离线

页脚

工信部备案:粤ICP备20025096号-1 Powered by FluxBB