jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2586回复:17

Linux下的GUI开发,有人做过吗?

楼主#
更多 发布于:2003-07-15 08:37
有哪些方法?
哪种比较好?哪种是正统的?
有没有相应的文档?

参与者都有分。谢谢!


[编辑 -  7/15/03 by  jason.gao]
我打字很快。
paopaoer
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2007-10-04
  • 粉丝0
  • 关注0
  • 积分630分
  • 威望64点
  • 贡献值0点
  • 好评度61点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-15 08:45
qt,gtk,kylix
paopaoer.3322.org
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-15 08:48
3ks,介绍比较一下

可以从如下方面
1。开发的便利程度
2。速度
3。版权
4。兼容性
。。。

还有一个我一直搞不懂的问题:同一个GUI程序,可以同时运行在GNOME和KDE下吗?如果可以,对开发上有什么要求?


[编辑 -  7/15/03 by  jason.gao]
我打字很快。
freducn2002
驱动小牛
驱动小牛
  • 注册日期2002-06-26
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望29点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-07-15 08:54
我只使用过GTK,觉得和VC机制差不多。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-15 09:02
做笔记先

历史
==============================
MIT:X Window是标准

1. Sun:Openlook
2. IBM/HP: Motif 占优
妥协的结果:CDE (价格贵)

KDE:基于Qt(但Qt非GPL),C++,跨平台性好
GNOME:C,更大众化?
斗争中。。。

QT:[url]http://www.trolltech.com/developer/index.html [/url]
GNOME:http://developer.gnome.org/doc/


[编辑 -  7/15/03 by  jason.gao]

[编辑 -  7/15/03 by  jason.gao]
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-15 09:05
我只使用过GTK,觉得和VC机制差不多。


freducn2002:
1。请问有可视化的工具吗?比如做一个对话框是用代码写的,还是有类似的resource模板?
2。用GTK做的程序可以在GNOME下运行吗?



[编辑 -  7/15/03 by  jason.gao]
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-15 09:17
看了一下,又糊涂了,QT和GTK是什么关系?有啥区别
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-15 09:52
看了一下FAQ,看来我要选择QT了。

有人反对吗?
 :D
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-15 10:18
GTK就是对应GNOME的?
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-15 11:12
发信人: hoopdream (大叻街角的女孩), 信区: Linux
标 题: 自由软件圣战 -- \"KDE/QT .VS. Gnome/Gtk\"(zz)
发信站: BBS 水木清华站 (Wed Apr 16 14:58:33 2003), 转信

于明俭
自由撰稿人
2000 年 11 月 10 日

Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司出品,目前包括Qt
, 基于 Framebuffer 的 Qt Embedded,快速开发工具 Qt Designer,国际化工具 Qt
Linguist 等部分 Qt 支持所有 Unix 系统,当然也包括 Linux,还支持 WinNT/Win2k,
Win95/98 平台。
Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员
就已经开始设计 Qt 了,Qt 的第一个商业版本于 1995 年推出然后 Qt 的发展就很快
了,下面是 Qt 发展史上的一 些里程碑:
1996 Oct KDE 组织成立
1998 Apr 05 Trolltech 的程序员在 5 天之内将 Netscape5.0 从 Motif 移植到 Qt 上

1998 Apr 08 KDE Free Qt 基金会成立
1998 Jul 09 Qt 1.40 发布
1998 Jul 12 KDE 1.0 发布
1999 Mar 04 QPL 1.0 发布
1999 Mar 12 Qt 1.44 发布
1999 Jun 25 Qt 2.0 发布
1999 Sep 13 KDE 1.1.2 发布
2000 Mar 20 嵌入式 Qt 发布
2000 Sep 06 Qt 2.2 发布
2000 Oct 05 Qt 2.2.1 发布
2000 Oct 30 Qt/Embedded 开始使用 GPL 宣言
2000 Sep 04 Qt free edition 开始使用 GPL
基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台
上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有下列优点:
优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux,
Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, B
SD/OS, SCO, AIX, OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是
非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使
得各个元件 之间的协同工作变得十分简单。
丰富的 API
Qt 包括多达 250 个以上的 C++ 类,还替供基于模板的 collections, serializatio
n, file, I/O device, directory management, date/time 类。甚至还包括正则表
达式的处理 功能。
支持 2D/3D 图形渲染,支持 OpenGL
大量的开发文档
XML 支持
但是真正使得 Qt 在自由软件界的众多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,
fltk 等等)中脱颖而出的还是基于 Qt 的重量级软件 KDE 。 有趣的是,KDE 也是使得
Trolltech 公司承受巨大压力的一个原因。下面我们将来看看这场 著名的自由软件圣
战 -- \"KDE/QT .VS. Gnome/Gtk\" 是怎么发生的。
在 Unix 的图形界面一向是以 MIT 的 X Window 系统为标准, 可是在商业应用上有两
大流派,一派是以 Sun 公司领导的 Openlook 阵营,一派是 IBM/HP 领导的OSF (Open
Software Foundation) 的 Motif, 双方经过多年竞争之后, Motif 最终胜出,成为
最普遍使用的界面库, 后来双方又妥协出一个 CDE(Common Desktop Enviroment) 作为
一个标准的图形界面。 但是 Motif/CDER 的价格非常昂贵,在这同时微软的 Windows
图 形界面发展速度非常快,而 Unix 界的后起之秀 Linux 也急需一个可靠并且免费的
图形界面。
1996 年 10 月,由开发图形排版工具Lyx的德国人 Matthias Ettrich 发起了 KDE 计划
。 KDE 的全称为 K Desktop Environment,可以看出是针对 CDE。 KDE 本身 是采用
GPL 宣言的,但是 KDE 却是使用 Qt 来作为其底层库,因为当时 Qt 已经将其 Unix 版
本自由发布了,但是 Qt 并不遵循 GPL, 因此 KDE 被很多自由软件的作者攻击,认为
利用非自 由软件开发违背了 GPL 的精神,于是 GNU 的狂热信徒兵分两路,一路是去制
作 Harmonny,试图重写一套兼容于 Qt 的替代品,另一路是由一个 26 岁的墨西哥程序
员 Miguel De Icaza 领导 下重新开发一套叫 GNOME(GNU Network Object Enviroment
)来替代 KDE。
由于 Linux 界的老大 RedHat 不喜欢 KDE/Qt 的版权,因此 RedHat 甚至专门派出了几
个全职程序员来加入 GNOME 进行开发工作,于是一场同 Motif VS Openlook 相似的圣
战就这么打起来了。 Trolltech 为了 KDE 曾数次修改 Qt 的版权,从成立 KDE Free
Qt 基 金会到采用 QPL,可谓是费尽心机,但是 GNOME 采用的 GTK 一开始就是完全的
GPL,因此在这个方 面 GNOME 有一定的优势,加上 Qt/KDE 采用 C++ 开发,入门的门
槛比较高,而 GTK/Gnome 采用 C, 因此 GNOME 吸引了更多的自由软件开发者,但是
KDE 毕竟先走了一步, 推出的 KDE1.1.2 十分稳定, 而当时急忙中推出的 GNOME1.0
的系统稳定性奇差,有人甚至笑称 GNOME1.0 还没有 KDE 1.0 Alpha 稳定。但是 GNOM
E 后来发展比较快,大有迎头赶上的势头。当时双方的开发者在网络 上炒得天翻地覆,
连 Linux 之父 Linus 只是说了一句喜欢用 KDE 都倍受指责。
战争到了第三个年头,也就是2000年,可谓是风云突变,一个接一个重大的事件先后发
生: 首先是一批从 Apple 公司出来的工程师成立了一个叫 Eazel 的公司替 GNOME 设计
界面,然后是一批 GNOME 程序员成立了一个 Helix Code 公司替 GNOME 提供商业支持
,而大家期待以久的 KDE 2.0 也终于发布了,这恐怕是目前最为庞大的自由 软件了之
一, 除了 KDE 本身,还包括 Koffice 套件,和集成开发环境 Kdevelop 等等大批软件
,其主力软件 Kounqueror 也是第一个可以同微软的 Internet Exploer 相抗衡的浏览
器。 而 Sun 公司,Red Hat 公司, Eazel 公司,Helix Code 等一批公司成立了一个
GNOME 基金会, Sun 还宣布将把重量级办公软件 Star office 同 GNOME 集成, Trol
ltech 公司自然不能坐以 待毙,于今年 10 月 4 日将 Qt 的 free edition 变为 GPL
宣言,彻底解决了 KDE 的版权问题, 又推出了嵌入式 Qt ,给了 GNOME 阵营一个有
力的回击。
到现在为止,这场战争还在继续,相信我们不能很快看到结果。一般说来, 目前 GNOM
E 吸引的公司比较多,但是 KDE/Qt 的开发的效率和质量比 GNOME 高,而且在 Office
/嵌入式 环境中先走一步,在一定时间内还将处于优势地位。
那么对于用户来说,如何在 Qt/GTK 中作出选择呢?一般来说,如果用户使用 C++,对库
的稳定性,健壮性要求比较高,并且希望跨平台开发的话,那么使用 Qt 是较好的选择
, 但是值得注意的是,虽然 Qt 的 Free Edition 采用了 GPL 宣言,但是如果你开发
Windows 上的 Qt 软件或者是 Unix 上的商业软件,还是需要向 Trolltech 公司支付
版权费用的。
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-15 11:20
Motif/LessTif:是不是过时了?

Tcl/Tk:用过TCL,但用它来做界面,我是没兴趣的。
我打字很快。
paopaoer
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2007-10-04
  • 粉丝0
  • 关注0
  • 积分630分
  • 威望64点
  • 贡献值0点
  • 好评度61点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-15 17:38
tcl/tk是脚本编程吧,

觉得还是qt方便一点的了。用C++得了。
做图形很快
不过如果做商业产品要考虑版权的了。

偶现在就用Qt得了。
觉得和vc的mfc一样有很多类。
但是在考虑上比mfc简单的了。
paopaoer.3322.org
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-07-15 19:30
对,不做正规产品就用QT了,还可以学习其设计思想。

今天看了一下,工具文档都很齐全。谢谢两位!

TCL是脚本,但在处理某些事情时还是方便的。不过脚本中,我还是最欣赏python ;)
我打字很快。
stonepine
驱动牛犊
驱动牛犊
  • 注册日期2002-12-09
  • 最后登录2009-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-07-23 02:47
桌面上:
目前主要是QT了,用它开发的KDE就是见证
GTK+/GNOME也未尝不可,特点是消息的流程比较容易理解,如果你对windows下的消息机制比较了解,很容易上手

如果是嵌入式方面:
 首推Qt,不过编程比较复杂,其采用的Signals and Slots据说是避免了linux/unix的进程间通信带来的低效,但却使得其机制比较特别,值得指出的是不容易调试,另外还有MOC,UIC生成C++的问题,也经常让人摸不着北。目前成功的产品最有名的有sharp sl5000(arm核),另外,摩托罗拉的在开发的i760和刚启动的e860手机也采用了linux+qt开发,相信不久大家就能用上linux手机了:)
  再就是minigui(http://www.minigui.com),也是一个很有影响的嵌入式GUI,更值得说的是国人做的为数不多的开放源代码项目之一,很值得关注。
  再有就是Microwindows,比较早的小型的嵌入式GUI,欧美用的比较多,国内早先也有人做,但现在国内好像没有用minigui开发的多。

 以上三个GUI都开放原代码,但其许可证各不相同,详细可看各自网页

[编辑 -  7/23/03 by  stonepine]

[编辑 -  7/23/03 by  stonepine]
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-07-24 09:14
谢谢stonepine,到我另一个帖子里站一下,给分你:D

刚用QT做完了这个小程序。操作上略感
我打字很快。
stonepine
驱动牛犊
驱动牛犊
  • 注册日期2002-12-09
  • 最后登录2009-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-07-30 14:15
我没太写过QT应用程序,感受不是很深,不过QT Designer设计的是XML档,需要MOC,UIC转换成.CPP和相应的.H文件,我一般用手写的Makefile,另外,可以再configure里面加点东西,这玩艺不难,要用时依葫芦化瓢了。QT的效率倒是深有体会,由于采用了C++封装,当然赶不上MiniGUI,pxa250(xscale,300MHZ)也就是刚刚够用,还显慢,另外,QT的优化觉得是花时间花力气的事情,不过如果采用了linux方案,现在QT在嵌入式上是趋势,GTK+可能我寡闻,好像就听过三星的在开发的手机在用(并且GTK+只是其中之一),而象摩托罗拉(说以后的手机开发要100%采用linux)、NEC都采用了Qt/embedded,现在嵌入式linux的厂商Montavista推出了专为OMAP1510,OMAP5910这样的专为2.5G,3G手机芯片定制的linux操作系统电子消费类CEE3.0上的Qt/e、Qtopia一揽子方案,而国内比较多的其他行业的上Minigui用的挺多的,所有我觉得虽然GTK+好学,但如果真的只是想学GUI编程,Windows的sdk绝对是经典,如果想了解窥见GUI更深入的原理,MiniGUI是首选,而Qt则是则是为了。。。,呵呵,不用俺说了

[编辑 -  7/30/03 by  stonepine]
flamesong
驱动牛犊
驱动牛犊
  • 注册日期2003-11-04
  • 最后登录2003-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-11-04 16:34
我用过FLTK(WWW.FLTK.ORG),是基于XLib和Win32API的跨平台库,挺复杂,是那些十年以上C++经验的家伙们搞出来的,用了4个月做了个2万行样子的东西,还没彻底搞懂它.
wumengyun
驱动牛犊
驱动牛犊
  • 注册日期2003-11-06
  • 最后登录2003-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-11-10 21:53
可以用 kdevelope 做开发工具
游客

返回顶部