我有一个关于更改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运行时进行更改。
可以请别人帮忙吗?
由于
塞巴斯蒂安
答案 0 :(得分: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的目的。你没有暗示你为什么要这样做。知道你为什么要这样做会很有帮助,因为很有可能有更好的方法来做你想做的事。