首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通配符更改时具有不同默认文件名的pyface FileDialog

通配符更改时具有不同默认文件名的pyface FileDialog
EN

Stack Overflow用户
提问于 2020-05-12 22:25:10
回答 1查看 45关注 0票数 1

我想根据用户选择的通配符为他们提供不同的默认文件名。

pyface.FileDialog似乎继承了HasTraits,所以我应该在上面观察它的wildcard_index特征,以注意变化并更新default_filename特征。

以下是我的版本,

代码语言:javascript
复制
import pyface, traits, traitsui
pyface.__version__, traits.__version__, traitsui.__version__
('6.1.2', '5.1.2', '6.1.3')

EDM python环境

代码语言:javascript
复制
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后端

代码语言:javascript
复制
import wx
wx.version()
'3.0.2.0 msw (classic)'

这是最简单的演示。问题所在,

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2020-05-12 22:36:47

我建议你将这个问题发布到ets-users google组(对于不熟悉它的观众,请访问:https://groups.google.com/forum/#!forum/ets-users)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61754261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档