2015-05-08 3 views
1

У меня есть вопрос об изменении атрибутов GUI traitsui. Для Gui я хочу изменить атрибут gui, а не из-за изменения внутри GUI.Изменение атрибута вне traitsui 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.

Может ли кто-нибудь помочь?

Благодаря

Sebastian

ответ

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() 

Но будьте осторожны, что это не то, что построены графические интерфейсы. Вы не указали, почему вы хотите это сделать. Было бы полезно узнать, почему вы хотите это сделать, потому что вполне возможно, что есть лучший способ сделать то, что вы хотите.

Смежные вопросы