- 论坛徽章:
- 0
|
本帖最后由 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的源代码:- #include <LCUI_Build.h> /* 包含LCUI的头文件 */
- #include <unistd.h>
- int main(int argc, char*argv[])
- {
- LCUI_Init(argc, argv);/* LCUI初始化 */
- LCUI_Widget *window, *label;
- LCUI_Graph pic;
- /* 初始化结构体 */
- Graph_Init(&pic);
- /* 载入库中自带的图形数据,这个图形是18x18尺寸的LCUI的图标 */
- Load_Graph_Icon_LCUI_18x18(&pic);
- /* 创建部件 */
- window = Create_Widget("window");
- label = Create_Widget("label");
-
- /* 设定窗口标题的文本 */
- Set_Window_Title_Text(window, "测试窗口");
- /* 设定窗口标题的图标 */
- Set_Window_Title_Icon(window, &pic);
- /* 改变窗口的尺寸 */
- Resize_Widget(window, Size(320, 240));
- /* 将窗口客户区作为label部件的容器添加进去 */
- Window_Client_Area_Add(window, label);
- /* 居中显示 */
- Set_Widget_Align(label, ALIGN_MIDDLE_CENTER, 0, 0);
- /*
- * 设定label部件显示的文本
- * <color=R,G,B>文字</color> 表示的是:“文字”将使用自定义颜色
- * Set_Label_Text函数使用方法和sprintf函数基本一样,支持控制符
- **/
- Set_Label_Text(label,
- "Hello World!\n"
- "<color=255,0,0>世</color>"
- "<color=100,155,0>界</color>"
- "<color=0,255,0>你</color>"
- "<color=0,100,155>好</color>"
- "<color=0,0,255>!</color>\n");
-
- /*
- * 改变label部件的字体大小,单位为pixel(像素),不是pt(点数)
- * 第三个参数是自定义使用的字体文件,我设定为NULL,表示不使用。
- **/
- Set_Label_Font(label, 24, NULL);
- /* 显示部件 */
- Show_Widget(label);
- Show_Widget(window);
- LCUI_Main(); /* 进入主循环 */
- return 0;
- }
复制代码 效果图:
还有其它测试程序的效果截图,这个是进度条的效果:
文本标签部件的效果:
还写了个时钟,用了图形旋转算法:
之前写了个猜拳的游戏:
还写了个 照片查看器 :
可是,这个照片查看器使用 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
请确保你在编译本项目源代码前,都安装了以上几个库。
其它看着眼花的没多大用处的内容已经删去,主要内容在上面。
|
|