LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: voodoomaster

想学学GUI编程,将来可能用在嵌入式里,qt好还是gtk好?

[复制链接]
发表于 2006-6-9 12:25:00 | 显示全部楼层
Post by forfan
先声明,我不是专业人士,也不是程序员。

按照我自己的经验,仅就使用上来说QT和GTK都很好,各有千秋,很难说
谁一定比谁好。
只有一个问题,GTK是完全的自由库,QT不是。就是说,不知道那一天QT
可能就不再是open source了也说不定。
另外,已经很就不用QT的东西了,感觉GTK的东西用起来更舒服一些。
个人意见。
如果你是open source的支持者,最好还是GTK
“纯粹”的 open source 支持者不应该支持 Gtk,因为 Gtk 的协议是 LGPL,它允许被用来开发非 open source 的软件。相反,基于 GPL 的 QT 不允许这种开发,所以 QT 对 open source 的要求更严格。
回复 支持 反对

使用道具 举报

发表于 2006-6-9 12:31:15 | 显示全部楼层
Post by wide288
gtk+ 好像是用的lgpl 授权不同于 gpl 的,所以可以卖你的软件产品。

这个说法不太准确。即使是基于 GPL 的软件仍然可以被销售,只要保证其源代码可以自由使用即可。参考 GPL 的原文:
http://www.gnu.org/licenses/gpl.html

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty
protection in exchange for a fee.
LGPL 许可证则允许使用它的程序的源代码不可以自由使用。
回复 支持 反对

使用道具 举报

发表于 2006-6-10 06:12:57 | 显示全部楼层
Post by herberteuler
“纯粹”的 open source 支持者不应该支持 Gtk,因为 Gtk 的协议是 LGPL,它允许被用来开发非 open source 的软件。相反,基于 GPL 的 QT 不允许这种开发,所以 QT 对 open source 的要求更严格。


其实 gtk 如果用户增多,就算不全是开源的产品,对gtk 本身的发展来看也是有好的意义的。
所以gtk 和qt 现在都能共同发展不只是因为有 gnome and kde
还有其它的软件:gimp , gaim, acrobat reader, openoffice  , etc ,
PS,  qt 开发的软件也可以卖的,不过要去买版权证。
回复 支持 反对

使用道具 举报

发表于 2006-6-10 14:58:54 | 显示全部楼层
Post by wide288
其实 gtk 如果用户增多,就算不全是开源的产品,对gtk 本身的发展来看也是有好的意义的。
所以gtk 和qt 现在都能共同发展不只是因为有 gnome and kde
还有其它的软件:gimp , gaim, acrobat reader, openoffice  , etc ,
PS,  qt 开发的软件也可以卖的,不过要去买版权证。


我的意思有二:

1. 当然,LGPL 对 Gtk 的发展有利,但(从一定意义上讲)对自由不利,因为它允许不自由的产品。

2. 使用了 Qt 的自由的程序也可以卖并无需购买版权证,只是因为其源代码是自由的,有很大的可能无法卖出而已。“自由”和“免费”在 GPL 中是不同的概念。
回复 支持 反对

使用道具 举报

发表于 2006-6-10 18:55:08 | 显示全部楼层
楼上,LGPL怎么对自由不利?允许不自由的产品就不利吗?C++即支持过程化编程,也支持OOD,难道因为这个C++就对OOD不利吗?

我看QT的许可协议,好像在说只要用QT从事商业化软件的开发,就要掏银子买。
回复 支持 反对

使用道具 举报

发表于 2006-6-10 22:15:04 | 显示全部楼层
Post by rearknife
楼上,LGPL怎么对自由不利?允许不自由的产品就不利吗?C++即支持过程化编程,也支持OOD,难道因为这个C++就对OOD不利吗?

我看QT的许可协议,好像在说只要用QT从事商业化软件的开发,就要掏银子买。
LGPL 对于推广使用这个许可证的软件是有利的:由于目前很多软件厂商倾向于不使其产品的源代码可以自由使用,强制公开源代码并使其可自由使用的 GPL 许可证可能会使他们选择其他的产品。由于没有这个限制,LGPL 会是一个软件更容易推广:公司可以使用它来开发产品,却不公开该产品的源代码。这是一种对封闭开发的妥协,从这个意义上讲,它对自由不利,尽管这是无法避免的。

对于后一个问题,商业化不等于不自由。逻辑是这样的:比如说我开发了一个软件,公布了其源代码,并宣布这些源代码可以任意复制、使用、修改和再发行。在这种情况下,即使我提供了出售这个软件的方式,我也可能无法销售出甚至一套软件:人们可以直接用源代码得到这个软件。因此,为了能够销售软件,我只能不公开源代码。但还有另一种可能,就是我公开源代码并出售服务,这也是商业化的方式,尽管目前这种方式仍不很成功。因此,“只要用 QT 从事商业化软件的开发,就要掏银子买”是不正确的。
回复 支持 反对

使用道具 举报

发表于 2006-6-10 23:37:45 | 显示全部楼层
多谢楼上老兄细致、清晰的解释,现在明白多了。

我比较了好长时间,最后还是选择了GTK+,现在正在慢吞吞的学习中。我觉得从技术角度来看,在GTK+的C接口上做成不同语言的前端,这样的实现很灵活。QT直接C++实现,反而显得过于笨重了。而且也像MFC一样自行定义了一些常用的数据结构,而这些数据结构已经成为C++的标准组成部分了。另外,其信号/槽机制在某种程度上篡改了C++语言的实现机制。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-15 16:03:43 | 显示全部楼层
呵呵,想不到一个只是问问qt和gtk谁更好学更好用的帖子,变成了讨论qt和gtk的gpl协议的帖子了。

rearknife的:
“我比较了好长时间,最后还是选择了GTK+,现在正在慢吞吞的学习中。我觉得从技术角度来看,在GTK+的C接口上做成不同语言的前端,这样的实现很灵活。QT直接C++实现,反而显得过于笨重了。而且也像MFC一样自行定义了一些常用的数据结构,而这些数据结构已经成为C++的标准组成部分了。另外,其信号/槽机制在某种程度上篡改了C++语言的实现机制。”
这才是我想看的内容啊。大家多讲讲技术方面的吧,还有就是易用性、兼容性之类的。有关gpl就不用讨论了吧。
回复 支持 反对

使用道具 举报

发表于 2006-6-16 10:52:23 | 显示全部楼层
我很赞同 herberteuler 的意见, GPL 只是个开源或者闭源的问题, 和什么商业化关系不大吧。
回复 支持 反对

使用道具 举报

发表于 2006-6-17 14:15:25 | 显示全部楼层
很郁闷,我喜欢C++,但是也喜欢GTK,现在使用的Anjuta对C++支持不是很好,大家有好用的开发环境吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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