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确实要求确认覆盖,但不保存文件。