gpt4 book ai didi

python - 关于 Enthought Traits/TraitsUI for Python 桌面开发的看法

转载 作者:太空狗 更新时间:2023-10-29 19:34:15 25 4
gpt4 key购买 nike

我正在寻找有关使用 Traits 的意见和经验/TraitsUI/enaml用于 Python 桌面开发。

文档和 Enthought 支持看起来很有前途,所以我想知道开发人员使用这个堆栈的真实第一手经验。

更新:

我的主要兴趣是迁移旧的几个桌面数据库应用程序:CRUD/查询/报告。那么,我很讲究对数据访问层感兴趣:现在,我正在使用 PosgtreSQL 和 peewee (一个极简的 ORM):

  • 是否有针对 SQL 数据库的内置或附带项目支持?
  • 如果是这样,是否有任何 ORM 支持? (我想 SqlAlchemy 是这里的“标准”)

最佳答案

我最初是作为机械工程博士后研究员开始使用 Traits 和 TraitsUI 构建 GUI 的。我之前构建 GUI 的经验是使用 MATLAB 的 GUIDE,相比之下,我发现 TraitsUI 非常简单易上手。 TraitsUI 的进度与工作量呈线性关系,对于我使用它进行的有限数量的 GUI 构建,它绰绰有余。

作为一名专业开发人员(完全公开:我在 Enthought 工作),我的观点有所转变。首先,重要的是要区分 Traits(类型、验证、通知和依赖系统)和 TraitsUI(内置于 Traits 并基于 Traits 的 GUI 层)。我一直在使用 Traits,它巩固了我编写的很多代码。特别是对于它的依赖性和通知实用程序,我认为它是无价的。

但是,很快就会遇到 TraitsUI 在应用程序构建方面的局限性。正如我之前提到的,TraitsUI 对于中小型应用程序来说已经足够了,但是创建更复杂的布局变得困难,我们花了很多时间来研究 TraitsUI 以产生更大、更复杂和灵活的应用程序界面。

这导致了 Enaml 的或多或少的白板开发。 Enaml 在其核心使用基于约束的布局系统,并与 Traits 集成。从一开始,它就解决了 TraitsUI 的布局弱点。我们每个使用过这两种系统的人都更喜欢 Enaml,我们认为它是 future 构建 GUI 的首选工具。 GUI 布局的控制水平和灵 active 非常出色——在存储库中有一些漂亮的演示可供查看。

也就是说,初始学习曲线略微(但只是略微)陡峭,因为从一开始就掌握某些概念(例如 MVC 分离)会很有帮助。经验丰富的开发人员会立即看到其中的值(value),但对于具有科学或工程背景的新用户来说,这可能更像是一个障碍。不过,这只是一个小障碍,而且很容易清除。此外,虽然功能集已接近完成,但仍有一些漏洞。填充它们的工作正在稳步推进,但 Enaml 在技术上仍处于测试阶段。

总的来说,如果您要决定学习哪个工具集,我的建议是学习 Enaml。这就是我们正在使用并将在未来使用的东西。

[更新 - 2018 年 1 月]

由于此回答不断获得意见并引发对话,因此早就应该对此意见进行更新,第一个回答可追溯到 2012 年底。Enaml 主要是一位主要开发人员的工作。当他在 2013 年初离开 Enthought 时,他 fork 了 enaml 存储库并开始在 nucleic/enaml 中开发它。存储库。我们 (Enthought) 决定不开发竞争分支并引入了一个瘦接口(interface)库 enthought/traits-enaml提供与 nucleic/enaml 变化的持续兼容性。大约在同一时间,我们还介绍了enthought/qt_binder在 Traits/TraitsUI 框架中提供对低级 Qt 小部件的轻松访问,该框架提供了与 Enaml 提供的大部分相同类型的布局灵 active 。

现在 Traits/TraitsUI 是我们用于大多数应用程序 GUI 构建的堆栈。我们继续使用 Python 2 和 3 维护和开发 Enthought 工具套件(Chaco、Kiva、Envisage 等)中的 Traits、TraitsUI 和其他库,它们继续满足我们的需求,尤其是在 enthought/envisage 中。可插入应用程序框架。

我修改后的建议是,如果您想用 Python 构建一个富客户端应用程序(而不是 Web 应用程序),我建议您学习 Traits 和 TraitsUI。

关于python - 关于 Enthought Traits/TraitsUI for Python 桌面开发的看法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14058555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com