问题标签 [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 回答
440 浏览

python - traitsui 文件对话框更改活动窗口

我有一个有许多小窗口的大型应用程序。我想使用 traitsui 的文件对话框从这些窗口打开一些文件。但是,当我这样做时,文件对话框会正确生成并选择一个文件,但它也会在完成后始终将活动窗口切换到不需要的窗口。我真的很困惑为什么。

这是一个显示相同问题的简化测试:

当 open_file 返回并选择所需的文件时,活动窗口将切换到 BigApplication 窗口而不是返回到 Subwindow 窗口(以便用户可以在单击 OK 之前选择一些附加选项)。

0 投票
1 回答
474 浏览

python - 对用户在 EPD 特征视图中按下的按钮做出反应?

我将 EPD 特征用于基本的 GUI 界面。我可以使用如下代码弹出一个设置窗口:

该窗口有“确定”和“取消”按钮,我想做一些不同的事情,具体取决于按下哪个按钮退出窗口。似乎它应该很简单,但我不知道如何设置它。

理论上我想做这样的事情:

但是让我知道是否有更好或更正确的方法来做到这一点。

FWIW:这是我的设置窗口的视图属性,带有标准的确定和取消按钮:

0 投票
1 回答
321 浏览

python - traitsui 中的动态列表

我需要构建一个动态枚举列表,其中列表的每个元素都应包含相同的引用枚举。然后用户可以从枚举中选择值。这是我的代码:

它运行良好并显示了我需要的内容,只是我事先不知道值的内容。我应该如何更新那个简单的代码才能在运行时传递一个列表?我已经尝试了一些东西,但我似乎没有得到任何地方。

谢谢。

0 投票
1 回答
754 浏览

python - Enthought 搪瓷表编辑器

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

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

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

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

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

非常感谢。

0 投票
1 回答
55 浏览

python - 在 traitsui 中查找编辑器的当前位置

有没有办法告诉我的编辑器在屏幕上的当前位置是什么?也可以接受的方法是告诉编辑器在它所在的 traitsui 窗口中的当前位置是什么。

用例是这样的:我正在尝试从 mayavi 视图中制作电影(我不在乎这是否有点 hack)。在代码中四处挖掘,有一些低级的特性使得实际上很难让 mayavi 很好地做到这一点。但是,一种选择是只使用 X11 抓取——这很老套,但现在适合我的目的。这取决于mayavi 场景在traitsui 窗口中的相对位置,这是由于traitsui 的设计对程序员完全不透明。

0 投票
1 回答
281 浏览

python - should I use constructor with HasTraits subclass

I'm trying to learn how to make GUI with Traits. I'm new in object oriented programming and I'm new in Python. Most of the examples I could find on the net do not use any constructor in the Hastraits subclass. Should I forget about the def init(self, *arg) constructor? Or should I force myself to use it ?

For example, taking the example from : Change property parameter from within class constructor [Python / Traits]

the code from DrSAR is to me the most simple and elegant of all the examples; and yet it doesn't use constructor. Did I miss something?

0 投票
1 回答
123 浏览

traits - traitsui 编辑器的当前大小

我的 traitsui 应用程序中有一个用于 mayavi 场景的 tvtk SceneEditor。在定义这个编辑器时,我要求它的大小为 500x500。

由于 mayavi 工具栏,场景编辑器本身理解它在正常情况下的大小比这个小:

而当窗口被放大以至于编辑器占用更多空间时,它也明白这一点

但是,如果编辑器变得更小,它会拒绝占用更少的空间(即使内容可以很容易地重新缩放),因为编辑器被指定为占用 500x500。它允许调整编辑器的大小,但只是切断部分显示,直到再次放大。

我想知道是否有办法a)询问当前在屏幕上显示了多少编辑器(而不是编辑器愿意显示的最小尺寸)和b)使编辑器默认为500x500但愿意如果它变小,要求它的内容重新缩放。

我正在使用 wxpython 后端。

编辑:场景包含在一个组中也很重要layout='split'——在探索了这个问题并遇到了 wx 在添加 traitsui 小部件时生成的大量 sizer 之后,我意识到这也可能很重要。

0 投票
1 回答
260 浏览

python - python TraitsUI 变量视图中的项目数

我有一个在 python 中实现的小型绘图程序,使用 TraitsUI 作为图形界面(以及用于绘图的 matplotlib,但这在这里并不重要)。所以我有一个class Plotter(HasTraits),最终使用该configure_traits()方法显示。看起来像这样,带有实际的viewmaplotlib 图形编辑器和一些控制元素:

现在我想在控件中添加一个额外的复选框“数组”,复选框的实际数量由图中的绘图数量动态确定。所以在我看来,我需要一些方法来动态地从视图中添加和删除“项目”,但我不知道如何实现这一点。

谢谢!

0 投票
1 回答
841 浏览

python - 更改数组元素时触发 Python 特征包中的事件

我正在使用 Python 的 traits 包,并且试图找出使用 traits.trait_numeric.Array 类的正确方法。用 Array trait 编写 traits.api.HasTraits 的子类很简单,这样当 Array 更改时,会触发 on_trait_change,但我不知道如何在修改数组元素时触发任何类型的事件到位。这是一个最小的例子:

我希望traits.trait_numeric.Array 有一些我不知道的内置功能,因为检测数组的一部分何时发生变化似乎是一件非常标准的事情。

除此之外,我认为可以通过创建一个也继承 numpy.array 的自定义 trait 类,然后更改 [] 运算符使其显式触发正确类型的 trait 事件来解决这个问题。但希望那是一罐我不必打开的蠕虫。

0 投票
1 回答
246 浏览

traits - 何时使用 trait Instance() 构造函数,以及有关 traitsUI 教程代码的问题

我对Gael Varoquaux的traitsui 教程有疑问。在代码片段 7 中,他创建了一个 CaptureThread 类,用于生成用于从相机获取图像的线程。他还开设了一个相机课程。

关于这段代码,我有两个问题:

1) 为什么在 Camera 类定义中,他通过调用 Instance(CaptureThread) 使 capture_thread 成为 Trait?CaptureThread 只是一个线程类,我们为什么要从中创建一个 trait 实例呢?

2) 在 CaptureThread 类中,他使用了 self.display.string 和 self.wants_abort 字段。这两个字段不是通过构造方法传入的,而是由 Camera 类在类定义之外分配的。这是最好的做法吗?因为如果 CaptureThread 的用户忘记设置这两个字段,就会发生错误。是否有一些明智的指导方针可以知道我什么时候可以分配这样的东西,或者我应该使用构造函数来分配它们?

我希望这些问题是有意义的,并且这是问他们的正确地方!谢谢,实验室迷