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

我希望我的 python 脚本从命令行发展而来,并构建一些带有 GUI 的应用程序,允许用户拖动文件和按钮来启动操作并以图形方式检查进度。

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

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

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

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

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

有帮助吗?

解决方案

pyqt 和/或非常类似的诺基亚赞助的 派赛德 (使用更“宽松”的许可证,LGPL 而不是 GPL,以及相同的底层工具包 Qt)确实提供了与诺基亚智能手机 GUI 工具包相似的优势(你的第四点)——诺基亚完全收购了 Qt 制造商 Trolltech因为 Qt 是他们移动产品的基本 GUI 工具包。

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

您的第一点和在某种程度上第三点在很大程度上取决于您为每个工具包提供的学习材料。按照我的口味,似乎 wxPython 的教程 (维基形式的新内容就是我指出和推荐的)非常好,而且 pyqt一点也不差; PySide 的文档 不包括好的教程(据我所知),我相信 PySide 的目的是让您首先学习 PyQt(使用合理的可用材料),然后应用这些 差异不大 在 PySide 而不是 PyQt 中编程;-)。我能找到的 Tkinter 教程要么非常古老,要么专注于底层工具包的多语言性质,我认为这使得它们较差。

如果你能买得起一本书, pyqt 有一个很好的(也适用于 PySide,如上所述)-- 不幸的是,优秀且免费的一个已经很旧了,所以我认为它没有帮助。 wxPython自己的书 也相当不错; 特金特的, 再次,它非常过时。

我个人推荐 PyQt / PySide:整体实力A+,上手容易(有上面的教程和书)A-,诺基亚手机程序员相似度A。对于 wxPython,我会说功能 A、易用性 A、诺基亚相似性 B。Tkinter 过时的教程和书籍是重要的负面影响。

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

其他提示

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

我猜你正在寻找 空地.

该网站说:

GLADE是一种RAD工具,可快速轻松地开发GTK+ Toolkit和GNOME桌面环境的用户界面。

在GLADE中设计的用户界面被保存为XML,通过使用GTKBuilder GTK+对象,可以根据需要动态地加载应用程序。

通过使用GTKBuilder,GLADE XML文件可以用C,C ++,C#,Vala,Java,Perl,Python等多种编程语言使用。

我是一个漂亮的 菜鸟程序员 还没有,但我只有几个问题需要开始解决 C空地. 。所以我猜你带着你的蛇在这里会跑得很顺利。看一看。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top