traitsui
Enthoughtのパッケージでファイル保存ダイアログを実装する正しい方法は何ですか? 現時点では、特性filename_out
(つまりFile
特性) の変化を監視する実際の保存機能があります。当然のことながら、ユーザーが同じファイルに繰り返し保存し、毎回上書きしたい場合、これは何もしません。ユーザーが FileEditor ダイアログで上書きを確認するたびにファイルを保存するにはどうすればよいですか?
動作しないコードの一部:
from traits.api import File, HasTraits
from traitsui.api import FileEditor, View, Item
import numpy
class ArrayToBeSaved(HasTraits):
filename_out = File
traits_view = View(Item('filename_out', editor = FileEditor(dialog_style='save')))
def __init__(self):
self.my_array = numpy.ones(3)
#This is NOT the right way
def _filename_out_changed(self):
numpy.save(self.filename_out, self.my_array)
self.my_array = numpy.zeros(3)
atbs = ArrayToBeSaved()
atbs.configure_traits()
ファイルの場所を選択すると、1 の配列が保存されます。もう一度ファイル ダイアログを呼び出して同じファイルを選択すると、ユーザーは上書きの確認を求められます。ただし、 は変更されていないため、何も起こりfilename_out
ません。
編集: FileEditor は上書きの確認を求めますが、ファイルを保存しないことを明確にしたいと思います。