我正在寻找关于将特征 / TraitsUI / 烯醇用于Python桌面开发的意见和经验。
文档和first支持看起来很有希望,所以我想了解开发人员使用这个堆栈的真实第一手经验。
更新:
我的主要兴趣是迁移旧的几个桌面数据库应用程序: CRUD / querying / reporting。然后,我对数据访问层特别感兴趣:现在,我正在使用PosgtreSQL和小淘气 (一个极简的ORM):
发布于 2012-12-28 14:03:07
作为机械工程的博士后研究人员,我第一次开始使用特性和TraitsUI来构建GUI。我以前在构建GUI方面的经验是使用MATLAB的指南,我发现TraitsUI非常简单,比较起来很容易开始。TraitsUI有一个非常线性的进步与努力的过程,对于我用它做的有限数量的GUI构建来说,它已经足够了。
作为一名专业的开发人员(完全公开:我在Enthought工作),我的观点发生了一些变化。首先,必须区分特征(输入、验证、通知和依赖系统)和TraitsUI (内置于和基于特性的GUI层)。我一直在使用特性,它支持了我编写的大量代码。特别是对于它的依赖性和通知实用程序,我认为它是非常宝贵的。
但是,不需要太长时间,就会开始在应用程序构建中遇到TraitsUI的限制。正如我前面提到的,TraitsUI对于中小型应用程序来说已经足够了,但是很难创建更复杂的布局,我们花了大量的时间与TraitsUI搏斗,以产生更大、更复杂和更灵活的应用程序接口。
这导致了Enaml或多或少的空白板岩的发展。Enaml使用基于约束的布局系统作为其核心,并与特性集成。从一开始,它就解决了TraitsUI的布局缺陷。我们每一个使用过这两种系统的人都更喜欢Enaml,我们认为它是向前迈进的GUI构建的首选工具。控制的水平和灵活的布局GUI是了不起的-有一些漂亮的演示,以检查回购。
也就是说,有一个稍微(但只是稍微)陡峭的初始学习曲线,因为从一开始就理解某些概念(比如MVC分离)是有帮助的。一个有经验的开发人员会马上看到这方面的价值,但是对于一个具有科学或工程背景的新用户来说,这可能是一个障碍。不过,这只是一个小小的障碍,而且很容易被克服。此外,虽然功能集已接近完成,但仍然有一些漏洞。在填补它们方面取得了稳步的进展,但Enaml在技术上仍然处于测试阶段。
总的来说,如果你想决定学习哪一套工具,我的建议是学习Enaml。这就是我们现在和将来都会用到的。
最新情况-2018年1月
由于这一回答继续得到意见和对话,关于这一意见的更新已经过期很久了,第一次答复可以追溯到2012年底。Enaml在很大程度上是一位主要开发人员的工作。当他在2013年初离开enaml时,他分叉了enaml存储库,并开始在核糖/烯醇存储库中开发它。我们决定不开发一个相互竞争的分支,并引入了一个瘦接口库思考/特点-依那姆,以提供与nucleic/enaml中更改的持续兼容性。大约在同一时间,我们还引入了粘结剂,以便在特性/TraitsUI框架中提供对低级别Qt小部件的轻松访问,该框架提供了与Enaml提供的很大相同的布局灵活性。
特性/TraitsUI是我们在大多数应用程序GUI构建中使用的堆栈。我们继续维护和开发Python2和3中的特性、TraitsUI和Enthought (Chaco、Kiva、application等)中的其他库,它们继续满足我们的需求,特别是在深思/设想可插拔的应用程序框架中。
我修改后的建议是,如果您想用Python构建一个富客户端应用程序(而不是web应用程序),我会说要学习特性和TraitsUI。
https://stackoverflow.com/questions/14058555
复制相似问题