硬汉嵌入式论坛

 找回密码
 立即注册
查看: 8330|回复: 26
收起左侧

[LearningGUI] 一种通用嵌入式GUI系统

[复制链接]

5

主题

27

回帖

42

积分

新手上路

积分
42
发表于 2017-10-12 18:05:51 | 显示全部楼层 |阅读模式
如题。欢迎有兴趣的了解下。附件是LearningGUI开发手册和源码开发包。注意:因为上传附件后缀名的限制,用户下载后需要将LearningGUI-GPL-0-2.zip改名为LearningGUI-GPL-0-2.tar.gz后再解压。
谢谢! LearningGUI-0-2.pdf (1.38 MB, 下载次数: 3430)

评分

参与人数 2 +5 金币 +2 收起 理由
王海靖 + 2
eric2013 + 5

查看全部评分

回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-12 18:14:00 | 显示全部楼层
源码包有15M左右,好像上传不了?[attachment=undefined].
不过没有关系的,可以到QQ群275782855去下载。

源码包百度盘具体下载,请往楼下看。

已经有网友在乌班图LINUX(ubuntu  12.04  x86_64 虚拟机)系统编译运行了。根据上次探讨的经验,在Linux系统中编译运行注意以下几点:
1. 只启动LINUX终端控制台,不能启动任何图形系统(X Windows, KED, GNOME等)。
2 以root登录。或者使用SU命令。
3 确保显示系统是使用FRAMEBUFER, 而且设备名是/dev/fb0
4 在刚开始使用时,去掉多线程、键盘、鼠标等功能, 以便调试。
   具体方法是:
      4.1 修改source/include/platform/basic_config.h文件(该文件是LearningGUI配置文件)。
           屏蔽掉 __LG_MULTI_THREAD__宏 (在前面几行)
           屏蔽掉 __LG_KEYBOARD__宏 (80多行)
          屏蔽掉__LG_MTJT__宏       (90行吧)
          对于资源小的系统,最好屏蔽掉__LG_WINDOW__宏 (前面几行),这样只编译运行Basic版本程序
         注意保存,最好使用VIM编辑后存盘,不要引入非法的字符。
5  编译库
     进入到source/code目录: make clean; make
     这样编译成库了。
6 编译运行演示程序:
    进入到exsample目录下,随便进入到一个子目录: make clean; make
    这样得到应用,运行应用即可。
7  如果调试键盘,鼠标的话, 依次打开相应的宏即可,编译运行。

我想,对于IAR等系统,第4步骤也是必须的。
回复

使用道具 举报

17

主题

177

回帖

233

积分

高级会员

积分
233
QQ
发表于 2017-10-12 19:27:14 | 显示全部楼层
可以重新编辑下上传的,
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2017-10-12 21:28:08 | 显示全部楼层
就冲一百多页的文档就必须要赞一个,祝你成功。
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-13 08:12:22 | 显示全部楼层

回 novice 的帖子

novice:就冲一百多页的文档就必须要赞一个,祝你成功。 (2017-10-12 21:28) 
谢谢!
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2017-10-13 08:54:45 | 显示全部楼层
自己开发的?
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-13 09:36:15 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:自己开发的? (2017-10-13 08:54) 
是的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2017-10-13 10:32:49 | 显示全部楼层
非常感谢楼主分享,楼主方便的话,把源码包上传个百度云就行,我们论坛这段时间数据库出问题了,上传大附件一直有问题。

先给楼主置酷[s:151] [s:151]
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-13 12:28:09 | 显示全部楼层

回 eric2013 的帖子

eric2013:非常感谢楼主分享,楼主方便的话,把源码包上传个百度云就行,我们论坛这段时间数据库出问题了,上传大附件一直有问题。

先给楼主置酷[s:151] [s:151]  (2017-10-13 10:32) 
好的
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-13 12:30:11 | 显示全部楼层

回 eric2013 的帖子

eric2013:非常感谢楼主分享,楼主方便的话,把源码包上传个百度云就行,我们论坛这段时间数据库出问题了,上传大附件一直有问题。

先给楼主置酷[s:151] [s:151]  (2017-10-13 10:32) 
过几天吧!我先要弄好百度云。
回复

使用道具 举报

54

主题

145

回帖

307

积分

高级会员

积分
307
发表于 2017-10-13 13:21:31 | 显示全部楼层
楼主威武
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2017-10-13 17:15:29 | 显示全部楼层

回 learninggui2 的帖子

原账号密码忘记了,现在密码还不能找回,论坛的系统有问题
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2017-10-13 17:16:25 | 显示全部楼层
上传不了,兑现上传承诺。。。
百度网盘地址链接:链接: https://pan.baidu.com/s/1miqWknI 密码: v7ww
下载后直接解压就可以了
回复

使用道具 举报

2

主题

70

回帖

76

积分

初级会员

积分
76
发表于 2017-10-13 17:21:00 | 显示全部楼层
楼主厉害[s:151]
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2017-10-13 17:22:40 | 显示全部楼层
lgui-gpl.z01.zip (3 MB, 下载次数: 210)

lgui-gpl.z02.zip (3 MB, 下载次数: 230)

lgui-gpl.z03.zip (3 MB, 下载次数: 209)

lgui-gpl.z04.zip (3 MB, 下载次数: 218)

lgui-gpl.zip (2.03 MB, 下载次数: 224)

去掉前四个文件的.zip扩展名,最后一个不用修改,直接用好压解压
捕获.JPG
回复

使用道具 举报

1

主题

35

回帖

38

积分

新手上路

积分
38
发表于 2017-10-13 17:39:25 | 显示全部楼层
谢楼主分享
回复

使用道具 举报

1

主题

5

回帖

87

积分

初级会员

积分
87
发表于 2017-10-13 19:28:15 | 显示全部楼层
这个必须要顶,也是我第一次顶帖子
是效果图片没?
有例程没?
都移植在那些目标CPU?
收费?如何收?
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2017-10-13 22:26:37 | 显示全部楼层
看了代码,我有个关于多线程处理方面的疑问。
消息处理里面使用了callback_lock/callback_unlock,如果在消息处理里面创建了模式对话框,那么在对话框未销毁前其他线程是无法给控件发送消息的,哪怕是空闲状态也不行。
因为创建对话框的线程占用了callback_lock,其他线程就不可能向对话框发送消息,我的理解对不对?

我觉得适用于嵌入式的GUI系统,由于资源有限,一个有效的方法是在一条线程里面创建的窗口就只能在这条线程里面使用,其他线程想要向这个窗口发送消息可以使用SendMessage/PostMessage,
因为SendMessage和PostMessage很容易设计成跨线程安全。这样就可以解决多线程访问窗口的问题,同时也保证了速度,因为其他任何窗口操作API都不需要做线程互斥,GDI也不需要做线程互斥。
回复

使用道具 举报

23

主题

213

回帖

282

积分

高级会员

积分
282
发表于 2017-10-13 22:27:00 | 显示全部楼层
文档确实很详细,而且全中文!建议lz录一些演示视频,GUI没有视频介绍怎么行呢[s:152]
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-14 15:09:08 | 显示全部楼层

回 yj_wpm 的帖子

yj_wpm:上传不了,兑现上传承诺。。。
百度网盘地址链接:链接: https://pan.baidu.com/s/1miqWknI 密码: v7ww
下载后直接解压就可以了
 (2017-10-13 17:16) 
谢谢!
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-14 15:19:15 | 显示全部楼层

回 novice 的帖子

novice:看了代码,我有个关于多线程处理方面的疑问。
消息处理里面使用了callback_lock/callback_unlock,如果在消息处理里面创建了模式对话框,那么在对话框未销毁前其他线程是无法给控件发送消息的,哪怕是空闲状态也不行。
因为创建对话框的线程占用了callback_lock,其他线程就不可能 .. (2017-10-13 22:26) 
我计划不设计模式对话框。因为它会改变消息处理机制,额外的增加处理代码。而且用户不点击退出按钮的话,模式对话框不会销毁。在PC中有模式对话框的必要,但是在嵌入式系统中,有模式对话框未必是好事。但是将来可能将FRAME控件有设置置顶的选项。嵌入式GUI系统可以借鉴WIN32 SDK, 但是不会完全照搬win32 SDK.
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-14 15:44:59 | 显示全部楼层

回 blackfire531 的帖子

blackfire531:文档确实很详细,而且全中文!建议lz录一些演示视频,GUI没有视频介绍怎么行呢[s:152]  (2017-10-13 22:27) 
后续工作,会逐步去做的。
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2017-10-18 08:01:39 | 显示全部楼层
ubuntu  x86_64系统
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2018-1-22 11:41:54 | 显示全部楼层
好东西,谢谢分享
回复

使用道具 举报

5

主题

109

回帖

124

积分

初级会员

积分
124
发表于 2018-1-28 17:08:02 | 显示全部楼层
给楼主加个油,不错
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2018-2-21 12:28:41 | 显示全部楼层
顶起
回复

使用道具 举报

10

主题

586

回帖

616

积分

金牌会员

积分
616
发表于 2018-2-21 17:37:12 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:16 , Processed in 0.724877 second(s), 35 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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