как правильно реализовать диалог сохранения файлов с пакетом 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()
После выбора местоположения файла массив единиц сохраняется. После повторного вызова файлового диалога, выбора того же файла пользователю предлагается подтвердить перезапись. Однако ничего не происходит, так как filename_out
не был изменен.
РЕДАКТИРОВАТЬ: Я хотел бы пояснить, что FileEditor запрашивает подтверждение перезаписи, но не сохраняет файл.