源码下载: 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
离线
离线
汉字是什么编码?我用vs编辑器默认utf8不显示。。
离线
字体小的时候,有些时候,上对齐或者下对齐都不大好看 //居中对齐 copy_bitmap(sbit->buffer, sbit->width, sbit->height, sbit->left, (lv_font_ttf.h_px - sbit->height)>>1, sbit->xadvance);这样会好看很多
离线
字体小的时候,有些时候,上对齐或者下对齐都不大好看
//居中对齐
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, 根本没有改变。
离线
离线
字体小的时候,有些时候,上对齐或者下对齐都不大好看 //居中对齐 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的源码。
离线
谢谢作者分享。
我试了一下, 模拟器有点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);
根本不能这样结束线程.
看来得想别的线程通讯方法才行。
离线
只是退出的时候有点小bug, 但是我有点代码洁癖, 就是忍不住要改, 哈哈!
离线
这个能够自定义字体大小吗 是矢量字体吗 还是做的字体是多大就是多大
离线
这个能够自定义字体大小吗 是矢量字体吗 还是做的字体是多大就是多大
对, 想生成多大就多大, 看下晕哥发的这个帖子就知道了:
https://whycan.cn/t_741.html
离线
字间距貌似有点大,怎么调整?大佬有研究过?
在线
各位大佬,为什么我用官方 VC2017 的demo工程, 借用楼主的代码, 这里输入汉字, 模拟器显示都是框框框呢?
离线
demo.c 文件明明另存为 UTF8 With BOM 了, 但是代码里面的字符串还是 GBK ???
我佛了 ...
离线
https://bianma.supfree.net/chaye.asp?id=6211
https://bianma.supfree.net/chaye.asp?id=601D
通过上面的链接,找到 UTF8 编码, 然后硬编码进去,就正常了。 出一身汗
离线
https://stackoverflow.com/questions/688760/how-to-create-a-utf-8-string-literal-in-visual-c-2008
#pragma execution_character_set("utf-8")
这个挺好用的, 一般人我不告诉他, 斜眼笑.gif
离线
谢谢楼上大神, 果然可以了 ^_^
最近编辑记录 我思故我在 (2019-09-03 16:55:11)
离线
厉害厉害。
离线
好帖,顶一顶。
QThread: Destroyed while thread is still running
15:56:29: 程序异常结束。
这个线程释放问题, 哪位大佬有没有搞定?
离线
我改了一下, 基本没问题了:
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;
}
这样就不会出错了, 窗口退出前, 先退出线程,可能还有别的问题,反正这个问题可以解决了。
离线
这个硬编码也是很好用,哈哈哈哈
离线
效果不错
离线
看不懂帮顶
离线
可以在STM32上用吗?
离线
想在arm9上用,不知道是否可行
离线
想在arm9上用,不知道是否可行
没有问题, 坛子里面好多大佬都用 f1c100s + linux + lvgl 量产了.
离线
可以在esp32上用 ?
离线
可以在esp32上用 ?
肯定可以,只要移植成功,完全没任何问题,一般单片机就可以,esp32配置更不用说
离线
谢谢分享!下来试试效果
离线
https://whycan.cn/files/members/1947/2019-09-03_165338.png
谢谢楼上大神, 果然可以了 ^_^
大佬的vs工程能开源下吗,看看需要包含freetype的哪些文件
离线
对于无法直接使用TTF库的RTOS,可以先使用阿里兄的字体转换工具转成.C或.bin文件加载带代码,然后通过控件应用字体,实现字体库绑定。
离线
请问如何实现的?littlevgl官方只提供了两种方式生成字体
离线
mark 在移植freetype到linux板子 向大神们学习
离线
mark ,TTF确实不错
离线
可惜下載不了,剛開始完而已.
离线
Littlevgl 深入學習中, 這個TFT 字體讀取很不錯!
离线
移植了freetype,但是只能显示英文和数字,中文无法显示,试了用转换后的unicode编码也不行。
离线
开源的 littlevgl 读取并显示TTF字体的程序,使用 freetype ttf字体库 MARK一下,怕以后找不到了
离线