Python 为什么没有简单的、跨平台的C/C++;高级语言的GUI工具包?

Python 为什么没有简单的、跨平台的C/C++;高级语言的GUI工具包?,python,user-interface,Python,User Interface,我有一点编程经验,我确实开始使用Swing(Java)和wxPython。 几年前,我不得不将一个应用程序移植到OSX上,而我在wxPython上遇到的所有问题都成倍增加。我已经开始寻找替代品,我找不到比wxPython更好的了。QT是唯一一个更接近的。GTK是Windows上的地狱(上次我检查) 我不认为我的困境是独一无二的,其他一些人可能已经达到了多年来相同的地位 那么,为什么没有具有以下特征的GUI工具包呢 简单。基本窗口/对话框(本机打开和保存)+一组具有可靠布局管理的基本小部件。作为附

我有一点编程经验,我确实开始使用Swing(Java)和wxPython。 几年前,我不得不将一个应用程序移植到OSX上,而我在wxPython上遇到的所有问题都成倍增加。我已经开始寻找替代品,我找不到比wxPython更好的了。QT是唯一一个更接近的。GTK是Windows上的地狱(上次我检查)

我不认为我的困境是独一无二的,其他一些人可能已经达到了多年来相同的地位

那么,为什么没有具有以下特征的GUI工具包呢

  • 简单。基本窗口/对话框(本机打开和保存)+一组具有可靠布局管理的基本小部件。作为附加库实现的附加(复合小部件)
  • 在OS X、Linux和Windows上积极维护
  • 主动维护至少3种高级语言的绑定
  • 积极维护最佳实践GUI-devel文档,并提供使用工具包的示例。正确解释了MVC/MVP。GUI HIG(苹果风格)简单解释,包括语义、范例、最佳实践、对齐、适当间距以及大量来自成功软件的同类最佳示例
  • 这是一种用每种语言为3个目标平台构建可分发可执行文件的简单方法
  • 使用现成的lib(如croot、cairo等)尽可能接近金属实现
  • 这些要求是否过于苛刻?若有,原因为何


    帮我理解为什么没有这么小的库

    您是否尝试过
    Qt
    ?它是一个用于更高级语言(
    PyQt
    )的跨平台
    C++
    GUI工具包。这对我来说似乎很简单。

    ?您可以从Java、Python(很好,Jython)、Ruby(很好,JRuby)、Groovy、LISP(很好,Clojure)以及在JVM上运行的任何其他工具中使用它

    它很简单,在引擎盖下使用本机小部件,它是主动维护的,因为您分发的是JAR或JAR以及一些可解释的代码,所以有一个统一的构建过程。我可以评论它的文档,也不能评论它是否接近任何种类的金属


    我知道这可能不是你想要的答案。

    我的猜测是,windows开发人员不会因为他们有wpf等而烦恼,linux开发人员也不会因为他们习惯了wpf而烦恼。因此,只有那些厌倦了win开发并转向linux的人才会接受它。也许是你开始一个开源项目的时候了:)我在想类似wpf的东西,但基于opengl将是一个很好的开始。

    你所要求的是一个具有极大灵活性的简单库。能够构建3*3可执行文件,拥有良好的文档并使用其他具有不同背景的库。所有这些都在不同的操作系统平台上实现。这是一个相当大的挑战,它认为QT是最接近的,但它并不满足您的所有标准。

    Tk工具包满足您的大多数需求,可能除了第四项。它非常跨平台,在可能的情况下使用本机小部件,易于使用,等等。分发要求很难满足,因为这取决于语言,但是当与tcl一起使用时,您可以使用tclkits和starkits,这是分发代码的绝对奇妙的方式(本质上,您的单文件可执行文件有一个嵌入式虚拟文件系统,可以包含您的所有资产——代码、图像等)


    有关跨语言的更多信息,请参阅tk的跨平台功能。tk的跨平台功能似乎也很适合。

    我记得在某个时候,Windows上的Qt看起来很可怕。现在可以了吗?Qt现在使用本机小部件,因此看起来比以前好多了。Qt不使用本机小部件(afaik),但对我来说,它从来没有看起来或感觉是非本地的。很多程序都使用Qt。如今,Qt实际上是在本地小部件可用时最难使用的工具包之一。当然,有些组件没有本地等价物,所以Qt必须用更小的元素构建它们。与wxwidgets相比,它存在nts对应用程序程序员来说是一个更干净的抽象层。我看过QT,它确实是最接近的,但仍然不够好。我喜欢信号槽。QT不够简单。它仍然很大。pyQT绑定非常好,但随着pySide的出现,它们以某种方式注定会接合。7.应该提供一个棒上的月亮。是的,QT co很接近。我确实意识到这是一个相当大的挑战,但在我看来,这对于一个小团队来说仍然是可行的。这是一个人创造的(_为什么)。它不符合我的要求,但它是朝着正确的方向迈出的一步。从API的角度来看,SWT很不错,但它不小,当然也不接近金属。考虑为windows或OS X开发一个独立的应用程序,该应用程序将在python或ruby上开发,不依赖外部库。考虑必须包含的内容e、 这将是巨大的(以我的标准)。你实际上触及了这个问题的一个非常重要的部分。每一组开发人员都有他们的工具包,在他们的系统上运行得很好。它集成得非常好。但是,问题是,越来越多的人需要跨平台。现在甚至在5年前,因为OS X和Linux的共同崛起。至于“开始我自己的"我对这3个平台缺乏了解,我也缺乏C/C++的知识,我可以合理地与高级语言演示相关,但是我必须要有基础。我再看一看Tk。我记得画布非常强大。画布,还有文本编辑器。我最近一直在用WxPython AN工作。我设计了样式化的文本控件,尽管它有各种各样的功能,我还是更喜欢文本控件。