我想知道如果我需要在两个平台上使用该软件,WIN和Linux以及为什么我应该考虑哪一个?
打包GTK及其在Windows上的依赖关系本身就是一个全职项目.Qt更容易分发,因为它没有Windows附带的依赖性.
Qt从一开始就是跨平台的.GTK并不总是跨平台.这些基本决策决定了整体设计,应该在我认为任何代码编写之前做出.
我会更多地评论,但我会悄悄地猜测,以上我知道的两件事情.
两者都是优秀的工具包,各有利弊.
一个区别是实现语言.Qt在C++中,而GTK +在C中.但是GTK +对许多其他语言(perl,python,C++,.NET等)都有绑定,所以这不是一个大问题.
Qt的一个优点是它提供了更广泛的功能(xml,数据库访问,网络编程,openGL等).GTK +在其轨道中基本上具有所有这些东西(例如libxml2,librsvg,libsoup,libgda等),但它们并不像Qt那样只是一个连贯的包.
我个人的建议是使用gtkmm,GTK +的C++绑定.它提供了一种更舒适的面向对象语言来编程,它提供了与使用C语言中的GTK +几乎相同的原生性能.(免责声明:我对gtkmm做出贡献).
GTK +你几乎可以在所有编程语言中使用C++(使用gtkmm)在C#(带有Gtk#)的C(gtk +)中用Python(PyGtk).在GTK背后,您拥有Mono Framework,这是.NET Framework的一个很好的实现,用于跨平台目的.如果你想使用Gtk#,你就拥有一个非常强大的gui设计师的IDE(MonoDevelop).您可以查看www.mono-project.org.但仍然取决于你想要构建什么,你只是看gui工具包,还是整个框架?信号/插槽背后的逻辑在Gtk +和Qt中是相同的,但如果你使用Gtk#,它们会在委托/事件范例中转换.
我的0.02美元:
在过去的4年里,我一直使用Qt,这是我最喜欢的工具包(Win32,MFC,Borland,Java,GTK).我使用GTK几个星期来尝试一下,并不喜欢它.主要是因为我认为在PC上使用C而不是C++ for GUI应用程序很尴尬...我也做嵌入式工作,我从不在8051上使用C++,但是对于一个大的GUI应用程序我更喜欢它.如果您要尝试GTK,我建议您查看GTKmm,尽管我自己从未使用过它.