pyface FileDialog с другим именем файла по умолчанию при изменении подстановочного знака

Я хотел бы предоставить пользователю разные имена файлов по умолчанию в зависимости от выбранного им подстановочного знака.

Кажется, что pyface.FileDialog унаследован от HasTraits, поэтому я должен быть выше, чтобы увидеть его черту wildcard_index, чтобы заметить изменение и обновить черту default_filename.

Вот мои версии,

import pyface, traits, traitsui
pyface.__version__, traits.__version__, traitsui.__version__
('6.1.2', '5.1.2', '6.1.3')

EDM среда Python

import sys
sys.version
'2.7.15 |Enthought, Inc. (x86_64)| (default, Jun 21 2018, 22:10:16) [MSC v.1500 64 bit (AMD64)]'

Использование серверной части WX

import wx
wx.version()
'3.0.2.0 msw (classic)'

Вот простейшая демонстрация. проблемы,


from pyface.api import FileDialog
from traits.api import on_trait_change

class MyFileDialog(FileDialog):
    """ Subclass that allows the suggested file name to change based on the wildcard type.
    """

    @on_trait_change('wildcard_index')
    def on_wildcard_changed(self, idx):
        # This is never called
        self.default_filename = [
            'filename_john',
            'filename_paul',
            'filename_george',
            'filename_ringo'][idx]

if __name__ == '__main__':
    types = ["*.a", "*.b", "*.c", "*.d"]
    dialog = MyFileDialog(
        action="save as",
        wildcard="|".join(["%s|%s" % (t, t) for t in types]),
    )
    dialog.open()

1 ответ

Я предлагаю вам опубликовать этот вопрос в группе google ets-users (для незнакомых с ним зрителей: https://groups.google.com/forum/).

Другие вопросы по тегам