当前位置:  开发笔记 > 编程语言 > 正文

Kivy FileChooser:仅列出目录

如何解决《KivyFileChooser:仅列出目录》经验,为你挑选了1个好方法。

如何列出Kivy FileChooser中的目录?我玩过滤器:

filters: ['Directories, not files!']

但文件再次列出.我关于回调过滤器,但没有找到示例.

我的Kv代码:

:
    select: select
    chooser: chooser
    orientation: 'vertical'
    FileChooserIconView:
        id: chooser
        size_hint_y: 0.9
        rootpath: home
        dirselect: True
        filters: ['How to list only folders?']
    Button:
        ...select button...

Nykakin.. 5

这是一个例子:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

from os.path import join, isdir

Builder.load_string("""
:
    FileChooserListView:
        filters: [root.is_dir]
""")

class MyWidget(BoxLayout):
    def is_dir(self, directory, filename):
        return isdir(join(directory, filename))

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()

请注意,该属性被调用filters,而不是filter,因为它是一个列表,例如,一个回调列表.



1> Nykakin..:

这是一个例子:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

from os.path import join, isdir

Builder.load_string("""
:
    FileChooserListView:
        filters: [root.is_dir]
""")

class MyWidget(BoxLayout):
    def is_dir(self, directory, filename):
        return isdir(join(directory, filename))

class MyApp(App):
    def build(self):
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()

请注意,该属性被调用filters,而不是filter,因为它是一个列表,例如,一个回调列表.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有