Gtk + vs Qt语言绑定

Eri*_*eim 8 gtk binding qt

简而言之:对于那些熟悉Qt和Gtk +语言绑定的人.例如python和ruby.是否有任何质量或能力差异?

更多背景:我非常了解C++和Qt.Gtk +的最小经验.我知道由于缺乏定义明确的ABI(应用程序二进制接口),C++不适合语言绑定.我还读到Gtk +被设计为绑定到其他语言.所以我想知道这在实践中是如何体现的.Gtk +绑定是否比Qt对应物更好地维护或更好地工作?

我现在对Go语言很感兴趣,他们已经开始开发Gtk +绑定.但是C++绑定很遥远.这让我想知道学习Gtk +是否值得.

小智 9

我在C++中使用了GTK和Qt,在Python中也使用了PyGTK和PyQt.

Qt击败了GTK,它是一个更灵活,更现代,更干净的API.GTK也缺少一些对我很重要的功能.从框架的角度来看,我推荐Qt.

对于langauge绑定(我只能谈论Python,因为我从未使用过Ruby等价物),我认为PyGTK(使用Glade和像Padraig Bradys libglade这样的包装器)使GUI编程非常容易和有趣.但是,如果你可以GPL你的软件(或支付许可费),那么PyQt也是一个不错的选择,虽然不如PyGTK + Glade友好(在GTK中,你可以在Glade中将你的UI定义为一个单独的XML文件,所以你可以在不触及代码的情况下调整UI;在Qt中如果你想使用QtDesigner,你必须使用uic生成代码,如果我没记错的话)API本身真的很好用,并且镜像Qt框架干净的设计很接近的.

总而言之,我可能建议在PyGTK上使用PyQt,但我可能有偏见,因为我现在更喜欢Qt而不是GTK,尽管你可以尝试两种方式,看看你喜欢哪种方式 - 它们几乎都是微不足道的.

如果你正在寻找一本关于PyQt的好书,我会推荐使用Python和Qt进行快速GUI编程.

总结一下:恕我直言Qt在质量和能力上都击败了GTK.尽管PyGTK可以加载Glade xml文件,但PyGTK和PyQt都具有出色的质量和功能,可以反映底层框架.