赞
踩
python开源框架
本文最初于2016年5月发布,并已更新为新信息。
对于大多数程序员来说,准备进入基础示例并开始为他们的程序构建图形界面时,都有一段旅程。
在Python中,开始进行GUI编程的步骤并不十分复杂,但是确实需要用户开始做出一些选择。 就其本质而言,它是一种通用的编程语言,在每个常见的操作系统中都可以使用解释器,因此Python必须对创建图形用户界面所提供的选择完全不可知。
幸运的是,对于希望为用户与他们的程序进行交互的简便方法的程序员,有许多可用的选项。 在各种平台上都存在针对多个UI框架的绑定,包括Linux,Windows和Mac原生的绑定,并且许多跨这三个平台均可使用。
在继续前进之前,请先扮演自己的魔鬼提倡者,然后问:对于您的应用程序而言,拥有传统的图形用户界面真的有意义吗? 对于某些程序,答案是显而易见的。 如果您的应用程序本质上是图形的,并且为在单个本地计算机上本地运行而进行了优化或使其有意义,那么可以,您可能应该考虑构建桌面GUI。 很多时候,这在您的设计中变得显而易见。
但是对于通用程序,请不要忽略命令行或Web界面。 命令行具有许多优点-速度,远程访问,可重用性,可脚本性和控制性-与图形界面相比,这对于您的应用程序用户而言可能更为重要,并且有许多库(例如Click , Cement和Cliff)使您更容易设计出色的命令行程序。
同样,即使对于打算在本地运行的程序,Web界面也是一个值得考虑的选项,特别是如果您认为用户可能希望远程托管应用程序,并且Django , Flask或Pyramid之类的项目都可以使此操作简单明了。 您甚至可以使用pywebview之类的库在本机GUI窗口中在Web应用程序周围放置一个薄包装。
或者,您可以使用Pyforms之类的框架在Web,命令行和桌面上构建一致的体验,而所有这些都只需一个代码库。
仍然确定要构建GUI吗? 太好了,这里有一些很棒的开源库,可以帮助您入门。
PyQt实现了流行的Qt库,因此,如果您熟悉另一种语言的Qt开发,例如从为KDE或其他基于Qt的桌面环境开发本机应用程序,您可能已经熟悉Qt。 这就开辟了使用Python开发应用程序的可能性,这些应用程序在许多平台上都具有熟悉的外观和感觉,同时利用了大型Qt社区的工具和知识。
Qt在开发人员社区中已建立良好的地位,并具有反映这一点的工具。 围绕Qt编写Python应用程序意味着您可以访问QtCreator ,它具有设计器模式,可以为应用程序的布局生成代码。
PyQt具有商业和GPL双重授权,与Qt项目本身不同,并且支持PyQt的主要公司提供了许可证常见问题解答,以帮助理解这对您的应用程序意味着什么。
对于将Qt库与Python一起使用的另一种选择,请考虑LPGL下的Qt for Python (通常称为PySide2)。
如果有一个软件包可以称为Python的“标准” GUI工具包,那么它将是Tkinter 。 Tkinter是Tcl / Tk的包装, Tcl / Tk是90年代初期首次流行的流行图形界面和语言配对。 选择Tkinter的好处是拥有大量资源,包括书籍和代码示例,以及庞大的用户社区,如果您有疑问,他们可以为您提供帮助。 简单的示例很容易上手,相当容易理解。
除了Tcl / Tk的BSD许可之外,Tkinter还可以通过Python许可获得。
WxPython将wxWidgets跨平台GUI库从其本地C ++引入到Python。 在不同的操作系统上,WxPython看起来比Tkinter更原生,因为WxPython使用主机系统的小部件来构造GUI。 入门也很容易,并且拥有不断壮大的开发人员社区。 您可能需要将wxPython与您的应用程序捆绑在一起,否则需要用户自行安装它,因为它不是随Python自动安装的。
WxPython使用其父项目的wxWindows库许可 ,该许可 已获OSI批准 。
Python GTK + 3项目以前称为PyGTK,它提供了与GTK对象(窗口,窗口小部件等)的Python绑定。 GTK +最著名的是用作GNOME桌面的基础,但可用于Linux,Windows和Mac上的独立应用程序。 使用Python GTK + 3,相同的框架可用于您的Python项目。
使用Python GTK + 3时,可以使用许多为GTK +本身创建的相同开发工具。 最值得注意的是,这包括GTK +应用程序的界面设计器Glade 。 用Glade设计的界面被保存为XML,并由应用程序代码中的GtkBuilder对象使用,但是您使用的界面是拖放式的,因此可以轻松创建动态且响应Swift的UI,而无需转换您在自己的视图中看到的内容注意布局代码。
Kivy是在考虑到快速发展和现代化设备的基础上构建的,是用于Linux(包括Raspberry Pi),Windows,Mac和Android的工具包。 该项目专注于“创新的用户界面”,并且已用于多媒体应用程序,例如用于手机的音乐控制器应用程序以及占据整个会议室墙壁的白板应用程序。
Kivy没有像QtCreator和Glade这样的可视布局程序,但是它使用自己的设计语言来帮助您将UI布局与代码对象相关联。 这使您可以轻松地(在精神上和在布局代码中)分隔应用程序中的类和函数。 Kivy还托管Kivy Garden,Kivy Garden是用户创建的小部件和附加组件的存储库,因此,如果您要创建Kivy本身不提供的功能,则可能已经存在于Garden中。
这些不是您唯一可以选择的选择,即使是长期尝试也是如此。 有关更多选项,请查看官方Python Software Foundation Wiki上的“ Python GUI编程 ”页面,其中列出了许多其他工具。 解决方案可用于将Python绑定到许多不同的小部件库和GUI工具,例如FLTK , FOX和许多其他工具。 虽然初学者应该避免使用仅提供部分实现或不再积极维护的项目,但是对于各种情况,有很多好的工具。
对于传统的应用程序来说,有很多选项可以采用其父桌面环境的窗口外观,但是有时您可能希望做一些完全不同的事情,例如在视频游戏中。 对于这些情况也有很棒的库,例如pygame , pyglet和Panda3d 。
你有没有在这里提到的最爱吗? 在下面的评论中让我们知道!
您是否有兴趣阅读更多此类文章? 订阅我们的每周电子邮件通讯 。
python开源框架
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。