问题标签 [enaml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3989 浏览

python - 关于 Python 桌面开发的 Enthought Traits/TraitsUI 的意见

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

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

更新:

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

  • 是否有对 SQL 数据库的内置或辅助项目支持?
  • 如果是这样,是否有任何 ORM 支持?(我想 SqlAlchemy 是这里的“标准”)
0 投票
1 回答
317 浏览

python - 如何使用 enaml 完成初始 Splitter 和 SplitItem 布局?

我正在使用enaml工具包,想知道如何初始化Splitter/SplitItem布局。

下面是一些非常简单的示例代码。我希望窗口从左边开始,SplitItem占据窗口宽度的 2/3,右边占据SplitItem另外三分之一。我在不同的地方尝试了各种限制,但似乎无法找到我需要做的事情。

窗口开始如下: 等宽拆分项目

我希望它像这样开始: 左拆分项目更宽

0 投票
1 回答
341 浏览

enthought - 如何使用 ScatterInspector 和 ScatterInspectorOverlay?

我想使用 chaco 工具ScatterInspector和/或ScatterInspectorOverlayenaml。我已经设置了一个非常简单的控制器和视图(下面的源代码),但无法确定如何进行。我尝试遵循我发现的最小和旧示例,但没有成功。

如果我取消注释覆盖部分ScatterInspectorOverlay,代码将无法运行

文件“.../chaco/scatter_inspector_overlay.py”,第 51 行,如果不是 plot 或不是 plot.index 或不是 getattr(plot,“value”,True):

如果我注释掉覆盖部分,我当然不会得到我想要的覆盖行为,而且在移动鼠标时,得到

文件“.../chaco/tools/scatter_inspector.py”,第 48 行,在 normal_mouse_move index = plot.map_index((event.x, event.y), threshold=self.threshold)

view.enaml 来源:

控制器.py 来源:

0 投票
1 回答
754 浏览

python - Enthought 搪瓷表编辑器

我有一个带有自定义表编辑器的对象附加到视图。此表编辑器可以通过用户输入删除其某些列。在这种情况下,我调用了一个更新函数,这个函数也在对象的实例化时被调用。

在 enaml 布局中,此对象的引用方式如下:

它在实例化时效果很好,但是当一个列被删除时,它会保留在视图中,并且终端会充满 AttributeErrors。同样在视图中,该列充满了“格式!” 关键词。这一切都是合乎逻辑的,因为视图正在查询一个不再存在的对象。

所以我的问题是,如何让视图在更改我的 ModelList 对象后完全重新加载?

我还尝试重新定义 edit_traits() 因为这是 enaml 在构造视图时调用的方法,但该函数仅在实例化时调用一次。

非常感谢。

0 投票
1 回答
944 浏览

python - 创建确定/取消对话框

它应该很简单,但我无法弄清楚如何在 enaml 中进行简单的确定/取消确认对话框。有人可以启发我吗?我正在使用带有 pyside api、python 2.7 和 enaml 0.6.8 的 Qt4 的 ETS 工具包。

我的应用程序由一个 MainWindow 组成,并按如下方式启动:

提前致谢

0 投票
2 回答
844 浏览

python - Python Enaml“id:无效语法”

我正在尝试在 enaml 文件中使用 id,当我运行程序时

我得到这个输出

输出总是在 id 上产生无效的语法错误。我如何正确识别身份?

资源:

0 投票
2 回答
216 浏览

macos - How to get opencv image in an enaml space - Is it possible?

Is it possible to have enaml as target for OpenCV?

I'm thinking how to setup GUI and what to use. Nothing too complicated, I need to be able to set some bitmap background, draw rectangles and circles over it, but also have the possibility to select/move these graphics objects.

Also, I would like that I do not have to take care of all these elements when I stretch the window, etc. they should do this automatically since they would be defined in some "absolute" space. I think I could easily make it work for the bitmaps (even from memory), by overriding request_image in ImageProvider object (even though I see some strange cache happening in provider/enaml view).

Problem that I'm having now with OpenCV (OSX 64) is that even when I get resize to work with qt backend and CV_WINDOW_NORMAL, the content does not stretch. I like OpenCV, because easily I get basic UI functions.

On the other hand I started to like enaml so I'm thinking did anyone manage to get these to to work together. I'm thinking if link with MPL works, it's possible that coupling with OpenCV should be possible :)

Thanks!

0 投票
2 回答
756 浏览

python - 使用 enaml 时如何获取关键事件?

我一直在使用 enaml(目前 Canopy 提供的 0.6.8)并成功创建了一些非常有用的实用程序应用程序。但是,我想拦截键盘事件以启用一些快速键盘快捷键,而不是在 UI 中重复单击按钮。

我该如何处理?我知道这将是特定于工具包(qt4)的,但无法真正弄清楚从哪里开始。我在 qt 中阅读了一些关于事件过滤器的内容,这似乎是我想要的,但我不明白将 QApplication 等与 enaml 相关联的机制

0 投票
1 回答
157 浏览

python - 搪瓷滑块箭头键不起作用

我正在使用 enaml 并试图获得一个也可以用箭头键控制的滑块。我使用了图库中的幻灯片示例(它不能开箱即用,并且会出现数学域错误,但可以通过删除日志来修复)。根据滑块文档,有一个single_step属性:

定义当用户按下箭头键时滑块将移动的步数

这似乎默认为 1,但在我的情况下,当我按下箭头键时没有任何反应。我在下面明确写了它Slider:(并尝试使用更大的值),但无济于事。当我按下箭头键时,似乎什么也没有发生。

我在 OS X 中使用 Canopy 的 enable 0.6.8 和 Qt 后端。我想知道这是否是后端限制?我也遇到了类似的问题,即无法使用带有 TraitsUI 的键盘控制滑块。

0 投票
1 回答
698 浏览

python - 如何制作自定义容器?

我想在横幅示例中制作带有类似标题的可重用容器。(所以它就像一个自定义的 GroupBox)。所以我添加到类中的每个元素都应该添加到类子容器中,而不是添加到自身中。请参阅下面的代码,我标记了我只想编写子元素的位置。