当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 30 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 完全基于ubuntu开发了一个项目,谈谈心得
帖子发表于 : 2006-11-14 21:59 

注册: 2005-08-21 10:31
帖子: 26
送出感谢: 0 次
接收感谢: 0 次
此次项目是开发一个Linux平台C/S结构的考试系统。
因为个人偏爱C语言,因此采用GTK。
为提高效率,决定采用anjuta,对于图形界面部分,我是先用glade画出相关界面,在build到源代码,然后参考这些源代码再加入到interface.c里面, 如果直接采用glade+anjuta来开发,到后期要修改界面的话会比较麻烦。
分几个方便随便聊聊 :)
1、中文内容显示
GTK显示中文要求是utf8编码。考虑到本程序客户端的界面内容比较简单,所以直接嵌入代码中。但是在 make dist时,却无论如何同不过(因为需要制作rpm包),于是将所有中文UTF-8部分分离出来,新建一个msg_cn.c文件,将所有中文内容采用 #define 来处理,于是make dist 顺利通过。(也不知道是为什么)。另外本系统的服务端有一个选题功能,是从mysql里获取题目内容,为支持utf-8,所以mysql采用4.1以上版本。默认情况下从mysql里获取的编码还是latin1的( mysql编码是个很繁琐的问题),后来发现mysql4.1里的编码分四个层次来配置的,如果要获取utf-8编码的内容需要在连接之前执行"set names utf8",将数据连接定义为utf8才行。

2、开发过程
对于GTK控件我也是边查手册边解决,也经常向alpher(Linux下的连连看作者)请教。其实用GTK做界面感觉和HTML里的表单差不多,遇到有些属性不知道如何处理时,我就干脆用glade拉出相关控件,再寻找属性或者信号。

3、Linux下的注册表?
因为这个考试系统涉及到对linux本身的一些属性的修改,例如修改桌面,修改字体等。刚开始我还以为在.gnome文件里有相关配置文件,后来baidu上找到gconf,原来用命令打开 gconf-edit 之后,里面保存着一系列gnome的相关属性数值,和windows里的注册表几乎一样,于是再查资料找到gconf的开发接口,用起来还是比较方便的。

4、OpenOffice开发接口?
本考试系统涉及到对odt文档的修改,在评分过程中需要对考生的操作结果进行判断,当时还想进行全文匹配,后来发现openoffice的所有文件都是zip包(例如将foo.odt改成 foo.zip 就可以直接进行解压缩了),压缩包里是一系列的XML文件,这才突然想起odf协议,呵呵。那么就只要对 XML的属性内容进行判断即可。

5、关于anjuta
由于对automake的配置文件不熟悉,很多涉及到源代码意外的文件安装就不知道如何通过anjuta来处理了,例如我需要将log文件夹安装到某位置,就只能采用shell脚本来实现了。通过修改makefile.am来执行这个脚本。anjuta应该还可以继续完善,希望今后版本能更加强大。anjuta2.0相比上版本有了不少变化,对project.anjuta文件也进行了更换。但默认情况还是没有采用libglade来处理图形界面部分。

基本想到这些。
本项目包括服务端,客户端和阅卷程序,将作为今后计算机等级考试系统的linux版。首先在浙江省实施。
我独立开发的,代码约两万行,开发时间持续了一个月,因为平时还得管理LUPA社区,但希望今后能有更多的人给予帮助。为linux的教育和普及工作添砖加瓦。

附:界面
http://blog.lupaworld.com/attachment/Ty ... cc3039.png
http://blog.lupaworld.com/attachment/Ty ... 0f7daf.png

SaNoOl
Gtalk & MSN & Email: sanool@gmail.com


_________________
http://www.lupaworld.com
LUPA开源社区


页首
 用户资料  
 
2 楼 
 文章标题 : 路过,赞一个
帖子发表于 : 2006-11-14 22:12 
头像

注册: 2006-01-19 11:55
帖子: 1114
地址: HUST
送出感谢: 0 次
接收感谢: 0 次
路过,赞一个。


_________________
http://www.classfoo.org


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2006-11-24 13:10 

注册: 2006-07-22 18:44
帖子: 61
送出感谢: 0 次
接收感谢: 0 次
不错~~


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-12-03 17:15 

注册: 2006-05-31 1:52
帖子: 83
送出感谢: 0 次
接收感谢: 0 次
偶太弱,尽管看不懂,但是支持楼主一下吧。努力


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-12-05 15:45 

注册: 2006-11-14 10:44
帖子: 74
送出感谢: 0 次
接收感谢: 1
董存瑞路过也会顶


页首
 用户资料  
 
6 楼 
 文章标题 : 赞一个,以后请多指教!
帖子发表于 : 2006-12-12 12:48 

注册: 2006-12-03 14:33
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
我也可能需要在Linux下开发一些程序的。
高手多多指教!
s


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2006-12-14 10:59 

注册: 2006-09-12 1:25
帖子: 62
送出感谢: 0 次
接收感谢: 0 次
zan


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2006-12-21 22:21 
头像

注册: 2005-10-19 17:33
帖子: 2052
送出感谢: 0 次
接收感谢: 0 次
这东西直接用B/S做一个,搞点ajax效果也很好
GTK+做这种太大材小用了。感觉楼主还是在教育系统里面待着,不太考虑开发的经济性和产品的可维护性哦


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2006-12-28 11:12 

注册: 2006-11-20 11:56
帖子: 34
地址: 北京
送出感谢: 0 次
接收感谢: 0 次

顶一把


页首
 用户资料  
 
10 楼 
 文章标题 : 太强了
帖子发表于 : 2006-12-30 21:59 

注册: 2006-12-26 10:51
帖子: 6
地址: ND
送出感谢: 0 次
接收感谢: 0 次
支持,我看那界面就羡慕
楼主是在是强阿


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2006-12-31 8:45 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
最好还是qt或者wxwidgets吧,gtk的夸平台能力不强阿,c/s结构最好还是能够夸平台比较好吧。虽然楼主的程序确实不需要linux之外的平台……


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2006-12-31 8:48 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
对unicode的支持似乎wxwidgets好一点,几个很方便的宏,对翻译什么的国际化也先天的就准备的很好。除了对那些连左右顺序都反过来的语言~~而且新的2.8对这个也有加强。


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-03-10 0:09 

注册: 2007-03-03 15:09
帖子: 35
地址: 厦门大学
送出感谢: 0 次
接收感谢: 0 次
高手很多... ...


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-03-10 1:07 
头像

注册: 2005-03-30 0:27
帖子: 3294
送出感谢: 0 次
接收感谢: 2
楼主这样不太符合国际化要求,
一般是使用 gettext , 将中文写在 .po 里。

既然楼主都已经分离了中文,干脆就标准点了。




另, WxWidget 在 Linux 上是包装 Gtk+ 的,楼上某位不要觉得如何。
Qt 当然跨平台更好,但是楼主的程序是在 Ubuntu Gnome 下的。


_________________
跃过无数的时间断层,只为了在


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-03-10 14:28 
头像

注册: 2006-12-02 12:25
帖子: 689
送出感谢: 0 次
接收感谢: 0 次
B/S


_________________
Titainium


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 30 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译