问题标签 [traitsui]

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 投票
1 回答
275 浏览

python - 如何在 traitsui 生成的窗口中分配 HSplit

在这段代码中,有以下内容:

HSplit将窗口分成大小相等的两个面板。我该怎么做才能使一个面板占据 1/3 的空间,而另一个占据窗口中另外 2/3 的空间。我做了很多源代码潜水并阅读了在线文档,但我没有任何运气。

任何帮助表示赞赏!

0 投票
1 回答
184 浏览

enthought - 在 Chaco 中使用 VPlotContainers 绘制多个时间序列。限制您可以使用的 VPlotContainer 对象的数量

我希望绘制存储在一个NumPy数组中的多个时间序列数据,在同一个图中,但每个时间序列都有偏移,所以它实际上有自己的 Y 轴。我认为最好的方法可能是将每个系列放在一个单独的VPlotContainer中,但是当我打电话时,configure_traits()我只是得到一个空白窗口。是我有太多时间序列让机器处理的问题吗?

所以我的 EEGObject 是一个二维的 NumPy 数组。大约 1500(行)乘 65(列)。我想知道我是否因为做错了什么而得到了空白屏幕,或者我只是给了它太多容器?

0 投票
1 回答
540 浏览

wxpython - Mayavi:帮助重置鼠标选择器并将 wx 事件连接到 @on_trait_change

我正在制作一个 UI,其中涉及在带有控件的 wx 框架中嵌入 Mayavi 视图,并且遇到了一些问题。为了解决这个问题,我整理了一个工作脚本,它结合了他们的wx 嵌入红球选择器示例;我的项目是一个更复杂的版本。

我有两个问题:

  1. 如果用户选择了不同数量的球,我想清除图形并用一组新的球重新绘制。但是,根据我从谷歌搜索中收集到的信息,我需要在 clf() 调用之后重置选择器。我见过的类似示例使用了 scene.activated 特征的 @on_trait_change 装饰器,但我不确定当场景未激活而只是更新时如何执行此操作。
  2. 如果用户选择不同的球颜色,我想简单地就地更改颜色而不重新创建场景。看来我可以通过使用字形的 mlab_source 的 set 方法来做到这一点,我想最好使用 @on_trait_change 来调用它。但是,我不知道如何最好地将 wx 触发事件连接到允许触发 @on_trait_change 的特征类型。

提前致谢。

PS我想把这个贴在经过深思熟虑的邮件列表 上,但该网站似乎已经关闭并且已经有一段时间了。有人注意到同样的事情吗?

0 投票
0 回答
88 浏览

wxpython - 导入 pdb 的副作用——从 traitsui wxpython 中引用 C++ 对象被保留

我正在用 pdb 调试一些代码,发现只要导入 pdb 模块(无论是否有任何断点处于活动状态),程序都会按预期工作,但否则会崩溃。

具体来说,代码是多线程的独立 GUI 应用程序。GUI 保存在一个侧线程中,而主线程在 GUI 完成自身构建后立即执行各种操作(即,它们被添加到事件循环上的事件队列的末尾)。这是一个最小的例子:

这与wx._core.PyDeadObjectError: The C++ part of the PyApp object has been deleted, attribute access no longer allowed. 但是,如果单行import pdb未注释,则程序按预期工作,并且 GUI 线程在事件循环结束时将 58 打印到标准输出(即使堆栈跟踪没有取消注释)。

我也一直在尝试在一些不使用 traitsui 的非常简单的 wx 应用程序中测试这种行为。在这些应用程序中,在使用跟踪进行调试时会发现正确的行为(打印出 58),但在不调试程序段错误时会发现。

我的问题是,pdb 在做什么可能会阻止 C++ 对象被垃圾收集?知道这一点可能有助于我追查为什么会发生这种情况。

另请参阅此处此处的相关问题,这些问题的关注度稍低。

0 投票
1 回答
108 浏览

enthought - TraitsUI 对象的继承

我正在尝试创建一个 Traits gui 基类,并且我还有其他类,我想从这个类继承一些项目(即组)。我不想完全继承这些类之间的视图,只是一些对象。

当我尝试

例如:

我知道这是一个荒谬的例子,但它说明了这一点。当尝试创建 B 类的实例时,我收到 A 类没有属性“group1”的错误。

在普通的 python 类中,这不是问题,但不知何故,这些 TraitsUI Group 对象被隐藏了。有谁知道是否有解决方法?

这确实适用于其他 Traits 类型(即 Int() ),但就我所测试的而言,不适用于 Groups 。

谢谢!

0 投票
1 回答
329 浏览

python - TraitsUI CheckListEditor 更改值的大小写

CheckListEditor用来让用户选择可用选项的子集。将样式设置为“自定义”时,它会显示一个带有标签的复选框列表。这就是我想要的。但是,一个问题是,在某些情况下,文本内容的大小写会发生变化——我很困惑为什么会发生这种情况。

例如,如果文本是".state.Last",它将显示为".state.last"

任何人都知道为什么会发生这种情况以及是否有解决此问题的方法。

谢谢。

0 投票
1 回答
447 浏览

enthought - Chaco - 让多个数据系列使用相同的轴和地图

我正在尝试在一个图上绘制多个数据集合。

每个数据集可以表示为一个 x 系列(索引)和几个 y 系列(值)。x 和 y 数据系列的范围在每个数据集中可能不同。我想让其中几个数据集显示在一个图上。但是,当我简单地将第二个绘图对象添加到第一个绘图对象(见下文)时,它会为其创建第二个轴,该轴嵌套在绘图内。

我希望两个图共享相同的轴,并更新轴边界以适应所有数据。实现这一目标的最佳方法是什么?我正在努力在文档中找到这方面的主题。

谢谢你的帮助。下面的代码突出了我的问题。

0 投票
1 回答
1731 浏览

python - 更改 mlab quiver3d 和 surf 数据源而不清除特征脚本中的图形

我有一个 Traits 和 Mayavi 脚本,它展示了一个 mlab 场景和几个特征编辑器。编辑器通过调用我的绘图方法来影响显示在 a 和图例(标量 LUT 管理器)surface中的数据。quiver3d每次更改都会触发清晰的图形并重新绘制。

Mlab 交互式对话框示例中学习plot3d* 用于mlab_source.set更改数据而无需清除图形并重新绘制。在 update_plot() 中:

mysurfacequiver3d调用的返回分别是mayavi.modules.surface.Surfacemayavi.modules.vectors.Vectors对象。Surface 和 LUTManager 报告没有 mlab_source: AttributeError: 'Surface'/'LUTManager' object has no attribute 'mlab_source'。Quiver3d 报告了一个mayavi.tools.sources.MGlyphSource

1)如何更改我的数据/源surfacescalar LUTManager

2) 如何正确更改箭袋的数据/来源?

当我尝试更改 quiver 的值时,我得到了TraitError: Cannot set the undefined 'u' attribute of a 'Vectors' object.This 让我感到困惑,因为我使用了六值初始化程序


在示例中,plot3d返回 amayavi.modules.surface.Surface并且它的mlab_source对象是 a mayavi.tools.sources.MLineSource。在文档中搜索MLineSource是徒劳的,但在外部会产生Enthought Tool Suite 3.2结果。Tool Suite 文档是最新的吗?

*self.plot、self.surface 和 self.quiver 被声明为variable = Instance(PipelineBase). PipelineBase是从 导入的mayavi.core.api

0 投票
1 回答
227 浏览

enthought - 多对象视图行为 - 为 HasTraits 子类创建编辑器

我目前正在尝试为包含单个对象的许多实例的类制作一个 traitsUI GUI。我的问题与MultiObjectView Example TraitsUI中解决的问题非常相似。

但是,我不喜欢使用上下文的想法,因为它需要我为我拥有的每个对象多次写出相同的视图(而且我可能有很多)。因此,我尝试编辑代码以使其在从 Houses 对象查看时,House 对象的每个 Instance 都默认看起来像它的正常视图。它几乎起作用了,除了现在我得到一个按钮,它将我带到我想要的视图,而不是看到嵌套在一个窗口中的视图(如上面 TraitsUI 示例的输出)。

有没有办法调整以下内容以获得所需的输出?我想我必须进一步编辑 create_editor 函数,但我可以找到很少的文档 - 只有很多链接到不同的特征编辑器工厂......

谢谢,

蒂姆

0 投票
1 回答
953 浏览

enthought - 在 TraitsUI 中更改特征的字体、大小、背景颜色

我正在使用 TraitsUI 制作 GUI。我希望能够编辑更多关于 GUI 实际外观的信息。例如,我希望能够更改某些 Str 对象的字体,更改某些框的背景颜色,使某些框更大且字体更大(粗体/斜体等)。

这很容易做到吗?我一直在玩下面的玩具示例。但是我所做的所有尝试都没有奏效。我需要编辑视图或项目对象来执行此操作吗?还是我需要创建自定义编辑器?

如果有人知道一个简单的例子来强调如何做这些事情,将不胜感激。

谢谢,

蒂姆