免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 22187 | 回复: 61
打印 上一主题 下一主题

[其他] 分享我的C语言项目源代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-02 22:59 |只看该作者 |倒序浏览
本帖最后由 lc-soft 于 2012-07-17 14:03 编辑

项目中还有待完善的地方:
完善鼠标处理功能,使之支持鼠标滚轮。

图形圆角化。(窗口圆角边框需要用到)
图形描边。
图形阴影绘制。(实现窗口阴影)
完善图形旋转算法。


完善字体处理功能,目前使用的是freetype2,自己写的代码还不能很好的支持宋体。






项目主页:  http://lcui.org/(建设中)
项目相关信息页面:  http://sf.net/projects/lcui/
联系邮箱:lc-soft@live.cn

网站是在sourceforge.net提供的免费空间里搭建的,以后会继续完善网站。

发布前的一段时间,发现 照片查看器 的运行效果不怎么满意,本打算是将 照片查看器 的源码附在项目源码中一同发布,可是,由于时间紧迫,只好等到后续版本的更新在加入进去。

注意一下某些目录下README文件,打开看看,应该对你有所帮助。
有些没有后缀名的文件,是文本文件。

想要测试程序的图形显示效果的话,请你将你的linux系统切换到终端模式,按ctrl+alt+F1,不一定要F1,F2,F3都可以。

现在主要是完善基础功能的代码,基础功能决定上层功能,不把基础功能完善好,以后要修改时,上层功能的代码也需要更改,很麻烦。

先贴出Hello World的源代码:
  1. #include <LCUI_Build.h> /* 包含LCUI的头文件 */
  2. #include <unistd.h>

  3. int main(int argc, char*argv[])
  4. {
  5.     LCUI_Init(argc, argv);/* LCUI初始化 */
  6.     LCUI_Widget *window, *label;
  7.     LCUI_Graph pic;
  8.     /* 初始化结构体 */
  9.     Graph_Init(&pic);
  10.     /* 载入库中自带的图形数据,这个图形是18x18尺寸的LCUI的图标 */
  11.     Load_Graph_Icon_LCUI_18x18(&pic);
  12.     /* 创建部件 */
  13.     window  = Create_Widget("window");
  14.     label   = Create_Widget("label");
  15.    
  16.     /* 设定窗口标题的文本 */
  17.     Set_Window_Title_Text(window, "测试窗口");
  18.     /* 设定窗口标题的图标 */
  19.     Set_Window_Title_Icon(window, &pic);
  20.     /* 改变窗口的尺寸 */
  21.     Resize_Widget(window, Size(320, 240));
  22.     /* 将窗口客户区作为label部件的容器添加进去 */
  23.     Window_Client_Area_Add(window, label);
  24.     /* 居中显示 */
  25.     Set_Widget_Align(label, ALIGN_MIDDLE_CENTER, 0, 0);
  26.     /*
  27.      * 设定label部件显示的文本
  28.      * <color=R,G,B>文字</color> 表示的是:“文字”将使用自定义颜色
  29.      * Set_Label_Text函数使用方法和sprintf函数基本一样,支持控制符
  30.      **/
  31.     Set_Label_Text(label,
  32.                 "Hello World!\n"
  33.                 "<color=255,0,0>世</color>"
  34.                 "<color=100,155,0>界</color>"
  35.                 "<color=0,255,0>你</color>"
  36.                 "<color=0,100,155>好</color>"
  37.                 "<color=0,0,255>!</color>\n");
  38.    
  39.     /*
  40.      * 改变label部件的字体大小,单位为pixel(像素),不是pt(点数)
  41.      * 第三个参数是自定义使用的字体文件,我设定为NULL,表示不使用。
  42.      **/
  43.     Set_Label_Font(label, 24, NULL);
  44.     /* 显示部件 */
  45.     Show_Widget(label);
  46.     Show_Widget(window);
  47.     LCUI_Main(); /* 进入主循环 */
  48.     return 0;
  49. }
复制代码
效果图:


还有其它测试程序的效果截图,这个是进度条的效果:



文本标签部件的效果:



还写了个时钟,用了图形旋转算法:





之前写了个猜拳的游戏:



还写了个 照片查看器 :



可是,这个照片查看器使用 0.12.3版的LCUI实现出来的效果还不怎么满意,暂时不公开代码。


重点就在这里了,LCUI的下载链接:
sourceforge.net:http://sourceforge.net/projects/lcui/files/



LCUI是什么?
LC就是我的名字拼音LiuChao的首字母,UI即User Interface(用户界面)的简称,这个名字只是暂定的,在以后可能会更改;它是一个图形界面库,可为程序的图形界面的实现提供简单的支持。



不是已经有了GTK、Qt等开源项目吗?你这不是在重复发明轮子么?闲着蛋疼?
起初写程序是为了扩展自己的学习机的应用程序,后来发现C语言原来可以实现图形显示,在mgaview的源码的帮助下,终于让自己的程序显示了图形,可是,想写的带图形界面的程序有不少,为了能为以后的程序的图形界面的实现提供统一的API,减少写重复的代码,提高代码复用性,就有了写图形界面库的想法。

依赖哪些库?
字体处理:freetype2
触屏支持:tslib
线程支持:pthread
图片处理:libpng和libjpeg
请确保你在编译本项目源代码前,都安装了以上几个库。

其它看着眼花的没多大用处的内容已经删去,主要内容在上面。

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
2 [报告]
发表于 2012-05-02 23:58 |只看该作者
int main(int argc, char*argv[])
/* 主函数,程序的入口 */
{
看到这个注释,我笑了。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
3 [报告]
发表于 2012-05-03 00:46 |只看该作者
建议添加矢量绘图库和算法~~

论坛徽章:
0
4 [报告]
发表于 2012-05-03 05:09 |只看该作者
坚决不用中文注释,除非用中文编程语言。

非中文编程语言写中文注释,这回出很多问题。

ps,
你可以渐渐把这个lib定位到移动平台上,搞成嵌入式专用的那种图形库,不然你就搞不过gtk这些。

论坛徽章:
0
5 [报告]
发表于 2012-05-03 07:41 来自手机 |只看该作者
为了适应更多的人,只有写点注释了,但现在却发现,这大家都知道的东西不需要注释,除非还没入门,这样做的确有点傻。。。

论坛徽章:
0
6 [报告]
发表于 2012-05-03 07:45 来自手机 |只看该作者
这个库之前是为了自己的 文件管理器 而写的。发展的话,看情况了,我觉得这项目在以后应该能用到。

论坛徽章:
0
7 [报告]
发表于 2012-05-03 07:48 来自手机 |只看该作者
由于本人英语水平有限,用英语的话,可能会让人曲解我本来想表达的意思。

论坛徽章:
0
8 [报告]
发表于 2012-05-03 07:50 来自手机 |只看该作者
看来,开源在国内好像行不通,没有金钱为报酬的话,没多少人自愿会参与开源项目的开发,更多的人只是把“开源”这两个字挂在嘴边,"这个系统开源好"什么什么的。

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
9 [报告]
发表于 2012-05-03 08:27 |只看该作者
友情支持一下
btw,什么叫“学习机”?

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
10 [报告]
发表于 2012-05-03 08:51 |只看该作者
nketc 发表于 2012-05-02 23:58
int main(int argc, char*argv[])
/* 主函数,程序的入口 */
{


连我这个一行一注释的“注释画花派”都笑了。

是挺搞笑的,当时怎么想的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP