1

我有一些关于人机交互的知识和一些基本知识编程脚本(Python),它们从头到尾运行并自动化我想做的一些任务或计算。过去,我在 HTML 中使用 PHP 构建接口。

我希望我的 python 脚本从命令行演变,并使用 GUI 构建一些应用程序,这些应用程序允许用户拖动文件并按下按钮以启动操作并以图形方式检查进度。

因为我用 Python 编写脚本,所以我查看了一些选项(Tkinter、wxPython、PyQt),但我无法在它们之间做出决定,花时间学习一个而不是另一个。我的标准:

  • 有 GUI 程序员的介绍(与脚本有什么区别,一些简单接口的示例)
  • 一个框架,可以让我在我最常用的平台(Windows)上运行我的程序,但也可以在 Mac 和 Linux 上运行,无需太多修改。
  • 非常浅的学习曲线(易于制作第一个界面),但后来可以灵活地自定义界面,超出典型操作系统允许的范围(例如,按钮的不同颜色、大小和形状)
  • 如果不相同,则类似于您为 Android 和/或诺基亚智能手机编写 GUI 的方式。我计划在不久的将来为这些平台编写一些程序,所以如果可能的话,我想把这里的一些课程带到这些平台上。

我确实找到了这个先前的问题,但没有一个答案是令人满意的。

是否有任何框架比其他框架更符合这些要求,或者它们本质上是否相似,我会对它们中的任何一个感到满意?

注意:如果您认为我应该考虑使用其他语言而不是 Python 来实现这一点,那是哪一种?我真的很喜欢 Python 空格语法并且已经习惯了它,所以我更愿意坚持使用它。

4

3 回答 3

6

PyQt和/或诺基亚赞助的非常相似的PySide(具有更“宽松”的许可证,LGPL 而不是 GPL,以及相同的底层工具包 Qt)确实提供了与诺基亚智能手机 GUI 工具包相似的优势(你的第四点) - - 诺基亚收购了 Qt 的制造商 Trolltech,正是因为 Qt 是其移动产品的基本 GUI 工具包。

您提到的所有工具包都满足您对操作系统(Windows、Mac、Linux)提出的条件,这是您的第二点。

您的第一点和第三点在很大程度上取决于您为每个工具包提供的学习材料。根据我的口味, wxPython 的教程(wiki 形式的新教程是我所指和推荐的)似乎非常好,而且PyQt一点也不差;PySide 的文档不包含一个好的教程(我知道),我相信 PySide 的意图是您首先学习 PyQt(使用合理的可用材料),然后应用这些差异在 PySide 而不是 PyQt 中进行编程;-) . 我能找到的 Tkinter 的教程要么很老,要么专注于底层工具包的多语言特性,我认为这让它们逊色。

如果你买得起一本书,PyQt有一本很好的书(也适用于 PySide,如上所述)——不幸的是,这本优秀且免费的书已经很老了,所以我认为它没有帮助。 wxPython自己的书也不错;tkinter 的,再次,非常过时。

我个人推荐PyQt / PySide:整体功率A+,易于上手(使用上述教程和书籍)A-,诺基亚手机程序员相似度A。对于wxPython,我会说功率A,轻松A,诺基亚相似度B。 Tkinter 过时的教程和书籍是重要的负面因素。

您还提到了 Android,但我看不出有什么东西可以同时与 Android 和诺基亚的电话 GUI 编程相似。也许我对 Android GUI 编程不够熟悉,但在我看来,它与您提到的每一个工具包都不同。

于 2010-03-06T16:13:29.987 回答
1

PyGTK 至少满足了前三点。我不确定第四个。这里有一个很好的教程:http: //www.pygtk.org/pygtk2tutorial/index.html

于 2010-03-06T17:00:36.183 回答
0

我猜你正在寻找Glade

该网站说:

Glade 是一个 RAD 工具,可以快速轻松地开发 GTK+ 工具包和 GNOME 桌面环境的用户界面。

Glade 中设计的用户界面保存为 XML,通过使用 GtkBuilder GTK+ 对象,这些可以由应用程序根据需要动态加载。

通过使用 GtkBuilder,Glade XML 文件可用于多种编程语言,包括 C、C++、C#、Vala、Java、Perl、Python 等。

我是一个相当菜鸟程序员,但我只有几个问题才能开始使用CGlade。所以我猜你会带着你的蛇在这里平稳地跑。看一看。

于 2012-02-26T21:06:17.613 回答