1

我有一个关于更改 traitsui GUI 属性的问题。对于 Gui,我想更改 gui 的属性,而不是因为 GUI 中的更改。

from traits.api import HasTraits, Bool, Int
from traitsui.api import View, Handler

class TC_Handler(Handler):
    None

class TestClass(HasTraits):
    b1 = Int
    b2 = Bool
    b3 = Bool

    def _b1_default(self):
        return 10


view1 = View('b1', 'b2', 'b3',
         title="Alter Title",
         handler=TC_Handler(),
         buttons = ['OK', 'Cancel'])

tc = TestClass()
tc.configure_traits(view=view1)
tc.b1 = 454

你看我试图改变 b1 的值。

tc.b1 = 454

更改值,但在关闭窗口后。我需要在 gui 运行时进行更改。

可以请人帮忙吗?

谢谢

塞巴斯蒂安

4

1 回答 1

1

你可以使用GUI.invoke_later你所描述的。

model_object = get_new_model_object()

from pyface.api import GUI
_gui = GUI()
_gui.invoke_later( lambda : callable(model_object, *args) )

model_object.configure_traits()

但请注意,这不是 GUI 的构建目的。你没有暗示你为什么要这样做。了解您为什么要这样做会很有帮助,因为很有可能有更好的方法来做您想做的任何事情。

于 2015-05-28T23:05:49.163 回答