OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10261|回复: 6

分享一个比较容易移植的uGUI,只有2个文件

[复制链接]

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
发表于 2018-5-5 15:39:14 | 显示全部楼层 |阅读模式
本帖最后由 miaoguoqiang 于 2018-5-7 14:56 编辑

最近在做UI方面的,找了一些开源小型的GUI,支持彩屏的。终于找到一个简单的。
看到有人在用,我也当了一下搬运工,成功显示。
此GUI主要就是实现了窗口控件、Button控件、CheckBox控件、TextBox控件、Image控件这几个,支持触摸操作。   
该GUI的官方地址:http://embeddedlightning.com/ugui/
GITHUB地址: https://github.com/achimdoebler/UGUI
传几个官网的效果图
wpid-20150316_212829.jpg Video_lowres.png wpid-20150110_195355.jpg

包含两个文件 ugui.c  ugui.h

只需要实现三个函数(红色部分)就可以移植了。
    UG_Init(&gui,(void(*)(UG_S16,UG_S16,UG_COLOR))_HW_DrawPoint,LCD_W,LCD_H);
    UG_DriverRegister(DRIVER_DRAW_LINE,_HW_DrawLine);
    UG_DriverRegister(DRIVER_FILL_FRAME,_HW_FillFrame);
原型如下
UG_RESULT _HW_DrawLine( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c );
UG_RESULT _HW_FillFrame( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c );
void _HW_DrawPoint(UG_S16 x, UG_S16 y, UG_COLOR c);


里边只有触摸响应,自己加了按键响应,添加的单击函数如下
[mw_shl_code=c,true]UG_RESULT UG_Button_CLICK( UG_WINDOW* wnd, UG_U8 id)
{
   UG_OBJECT* obj=NULL;
   UG_BUTTON* btn=NULL;

        obj = _UG_SearchObject( wnd, OBJ_TYPE_BUTTON, id );
        if ( obj == NULL ) return UG_RESULT_FAIL;

        btn = (UG_BUTTON*)(obj->data);
         if ( obj->state & OBJ_STATE_VISIBLE )
         {
                obj->touch_state = OBJ_TOUCH_STATE_CHANGED|OBJ_TOUCH_STATE_CLICK_ON_OBJECT;
         }

   return UG_RESULT_OK;
}[/mw_shl_code]
使用举例:UG_Button_CLICK(&window_1,BTN_ID_0);

在该基础上也加入中英文汉字混合显示,由于项目简单,需要显示汉字的个数比较少,就没有用字库
自己自定义了几个汉字。
加得比较烂,就没有贴出来了。上传一个自己的中英文混合显示效果图,中文是32x32的。英文是12x20的。
95242.jpg



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-5-5 18:24:00 | 显示全部楼层
楼主查看下这个UGUI需要的硬件资源分别是多少,然后发出来看看
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
 楼主| 发表于 2018-5-5 18:45:41 | 显示全部楼层
yklstudent 发表于 2018-5-5 18:24
楼主查看下这个UGUI需要的硬件资源分别是多少,然后发出来看看

只提供算法,不带缓存。
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-10-9
在线时间
8 小时
发表于 2018-9-6 14:58:20 | 显示全部楼层
膜拜大神,我是小白。如何自己自定义了几个汉字呢?有资料吗
回复 支持 反对

使用道具 举报

23

主题

143

帖子

1

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2012-4-23
在线时间
68 小时
发表于 2018-9-18 23:15:06 | 显示全部楼层
不更新了  太遗憾了 只有这几个控件还不如不用gui啊
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2017-4-25
在线时间
20 小时
发表于 2018-10-11 22:19:48 | 显示全部楼层
楼主你好,能否上传一下你移植好的代码参考一下呢,我自己移植的画点画线函数都是正常运行的,但是涉及到窗口什么的就没办法显示了
回复 支持 反对

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
 楼主| 发表于 2018-10-12 12:18:27 | 显示全部楼层
1315150719 发表于 2018-10-11 22:19
楼主你好,能否上传一下你移植好的代码参考一下呢,我自己移植的画点画线函数都是正常运行的,但是涉及到窗 ...

https://github.com/SmartElec/UGUI更新了一下 新增了一个演示demo。根据自己的情况进行修改。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-25 22:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表