赞
踩
kivy中的FileChooser小部件提供了浏览文件的功能,它可以通过两种不同的方式(FileChooserListView图标显示,FileChooserIconView列表显示)显示文件或文件夹,这两种方式都提供了滚动和选择等基本的用户交互功能。
5.4.1 使用方法:
新建一个filechooser.py文件,在filechooser.py文件中定义Popup弹窗和show_load()回调方法,具体代码如下:
- from kivy.app import App
- from kivy.uix.popup import Popup
- from kivy.uix.boxlayout import BoxLayout
- from kivy.properties import ObjectProperty
-
-
- class MyFileChooser(BoxLayout):
- load = ObjectProperty(None)
- cancel = ObjectProperty(None)
-
- class FileChooserBox(BoxLayout):
- loadfile = ObjectProperty(None)
-
- def __init__(self,**kwargs):
- super().__init__(**kwargs)
-
- def show_load(self):
- content = MyFileChooser(load=self.load,cancel=self.dismiss_popup)
- #打开一个弹窗
- self._popup = Popup(title='Load file',content=content,size_hint=(0.9,0.9))
- self._popup.open()
-
- def load(self,path,filename):
- print(path,filename)
- self.dismiss_popup()
-
- def dismiss_popup(self):
- #关闭弹窗
- self._popup.dismiss()
-
- class FileChooserApp(App):
- def build(self):
- return FileChooserBox()
-
- if __name__ == '__main__':
- FileChooserApp().run()
-
根据filechooser.py文件中FilechooserApp()类,新建filechooser.kv文件,内容如下:
- <MyFileChooser>:
- BoxLayout:
- size:root.size
- pos:root.pos
- orientation:'vertical'
- FileChooserIconView:
- id:filechooser
-
- BoxLayout:
- size_hint_y:None
- height:30
-
- Button:
- text:'Cancel'
- on_release:root.cancel()
- Button:
- text:'load'
- on_release:root.load(filechooser.path,filechooser.selection)
- <FileChooserBox>:
- Button:
- text:'choose file'
- size_hint:.2,.1
- on_release:root.show_load()
运行filechooser.py文件,点击choose file按钮,弹出文件路径及图标,选择文件后,后台打印该文件名。结果如下:
5.4.2 常用属性
FileChooser文件选择器常用属性
属性 | 说明 |
path | 从该路径下加载文件系统,默认为当前工作目录 |
multiselect | 确定用户是否能够选择多个文件,默认为False |
dirselect | 确定目录是否为有效选择,默认为False |
file_encodings | 解码时使用的编码,默认为['utf-8','latin1','cp1252'] |
file_system | 用于访问文件的文件系统对象,默认为:FileSystemLoad() |
files | 由path指定的目录中的文件列表,只读属性 |
filters | 应用于目录中文件的过滤器,默认为[](未过滤任何内容) |
filter_dirs | 过滤器是否也应用于目录,默认为False |
progress_cls | 用于显示文件选择器加载进度指示器的类,默认为FileChooserProgress |
rootpath | 使用该路径替换系统根路径,默认为None |
selection | 当前选定文件的列表,默认为[] |
total | 要加载的条目总数 |
manager | 引用ScreenManager实例 |
view_list | 将一个list添加到FileChooser的视图列表 |
view_mode | 当前布局的视图模式,格式为str |
getsize(fn) | 返回文件的大小(以字节为单位) |
is_dir(fn) | 判断是否为目录,如果是,则返回True |
is_hidden(fn) | 判断文件是否被隐藏,如果是,则返回True |
listdir(fn) | 返回目录fn中的文件列表 |
cancel(*largs) | 取消由FileChooser启动的任何后台操作 |
get_nice_size(fn) | 传递文件路径,返回大小 |
add_widget(widget,**kwargs) | 添加一个新的小部件作为此小部件的子级 |
on_entry_added | 将根级条目添加到文件列表时触发 |
on_lentries_cleared | 清除条目列表时触发 |
on_subentry_to_entry | 将子条目添加到现有条目或从条目中删除条目时(例如:当节点关闭时)触发 |
on_submit | 双击选择文件时触发 |
上一篇:高级UX部件——Popup弹窗
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。