Python anygui 项目预览在 Python 世界中有一个非常有趣的 [anygui] 项目,它已经进入了早期的开发阶段。[anygui] 项目打算作为许多主要图形工具箱的下层 API。一旦完全开发成功,Python 程序员就可以调用一个公共 [anygui] 函数 ― 例如,为创建一个窗口 ― 可由“最适当好用”的工具箱来完成这项工作。在 Windows 上,可以使用到 Win32 API(或者 wxWindows);在 MacOS 上,可能本机调用;在 BeOS 上,使用 Bethon;在 Linux 上,使用 TKinter 或者 GTK;在 Telnet 屏幕上使用 ncurses ― 所有这些都取决于给定的机器上安装的和可用的软件。本文讨论了 [anygui] 当前的开发状态,以及该项目要达到的目标。 编写一次,到处显示! 许多年前当 Java 刚出现时,它的一个重要承诺就是实现代码“编写一次,随处运行”的想法。起先,主要考虑将 Java 用户界面作为 applet,嵌入到 Web 浏览器中。一段时间后,独立的 AWT 应用程序成为更流行的概念。接下来,AWT 通常被 Swing 所取代。Swing 又变成了 Bean(构建在 Swing 上,但有另外的要求)。这样依次下来,Swing 类从 Java 版本中添加、删减,不断来回变化着。 有关 Java 的一个很流行的笑话是,“编写一次,到处 调试”。至少可以确定的是,您不可能编写了一个 Java 应用程序后,非常自信地认为它可以运行在您应用程序的每个用户机器上 ― 除非您愿意要求每个用户做相当多的工作来获取 Java 版本和配置,使它们完全符合您特定的应用程序。应用程序是否运行取决于 Java 版本,以及甚至特定的供应商和安装 Java 虚拟机(JVM)的平台。 就大多数方面而言,如 Python、Perl 和 Tcl 这样的脚本语言,要比 Java 具有更好的可移植性。例如,对于大多数 Python 脚本,程序员感到十分自信的是,发送到多个用户的脚本在每台目标机器上都将正确和完全一致地运行(可能有最低版本的要求 ― 这要比 Java 上的要求简单得多、可靠得多)。当然,Java 除了不完美的移植性外,它也有许多优势:静态输入(许多人想要它)、庞大的类库、卓越的文档、细心的设计选择。但是有关那些语言的注意事项并不是我在这里感兴趣的话题。 Python 脚本可移植性中有一个地方比 Java 差很多,那就是在用户界面中。对于一个命令行工具,这一点不成问题。但当您希望复杂的用户交互时 ― 特别专门针对图形界面时 ― Python 实际上什么也不能提供。对于所有的小故障和小错误,Java 通常确实为每个带 JVM 的平台提供了 Swing 和 AWT 这些基本的 GUI。相反,Python 完全没有任何“标准”的 GUI 库。 许多人都表示他们期望有标准的 Python GUI。 重新考虑这个问题 Java 思想创建了每个 JVM 必须实现的能力的一个标准集合。Java GUI 是根据规定而存在。Python 式的方法可能来自一个不同的角度。不再命令每台机器遵从某个确定的 API,取而代之的是,只是确定给定机器 可以做什么,然后从那里开始工作。API 仅作为底层平台所完成工作的包装器。 一旦以 Python 方式考虑问题时, 写本文的时候, 台和图片 为了写本文,我快速研究了大多数工作后端。还有几个后端没有实现,或者只实现了部分功能。已经实现的有 上面所有的图形工具箱以一种非常相似的方式工作,或将以一种非常相似的方式工作。我承认我在大多数后端工具箱方面的知识很有限 ― 但从我的理解, 上一篇:用功能强大的Perl读写Excel文件 下一篇:在 C/C++中怎么样构造通用的对象链表 更多相关文章
|
推荐文章
精彩文章
|