0

Atom ベースの Enaml GUI を使用しており、Atom オブジェクトをディスクに保存/ディスクからロードしたいと考えています。

pickle を使用してみましたが、GUI への接続が失われます。

from atom.api import Atom, Unicode
import pickle

class test(Atom):
     name = Unicode

     def save(self)
          f = open('tester.p','w')
          pickle.dump(self.name,f)
          f.close()

     def load(self):
          f = open('tester.p','r')
          self.name = pickle(f)  # gui is not updated
          #self.name = 'this one works' #gui is updated
          f.close()

GUI 接続を失わずに Atom オブジェクトをシリアル化するにはどうすればよいですか?

編集: self.name = str(pickle(f)) を実行すると、接続を失うことなく文字列を取得できることがわかりました。このアイデアを、任意の Atom オブジェクトを含む辞書など、より一般化できるものに拡張するにはどうすればよいでしょうか?

4

1 に答える 1

0

setattr を使用して Atom 更新メカニズムを機能させ続ける方法については、この stackoverflow の質問と回答を参照してください。

于 2016-12-21T20:35:28.830 に答える