Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonKivy:如何使用filechooser访问C驱动器之外的文件_Python_Kivy_Filechooser - Fatal编程技术网

PythonKivy:如何使用filechooser访问C驱动器之外的文件

PythonKivy:如何使用filechooser访问C驱动器之外的文件,python,kivy,filechooser,Python,Kivy,Filechooser,我是一个完全初学者在基维 当我试图在模块上重新实现教程时,我只能访问C:驱动器上的文件,而不能访问其他驱动器上的文件。我试图寻找filechoser的根,但没有结果 有没有办法访问其他驱动器?您需要更改filechooser.path值: from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.lang import Builder Builder.load_string(''' <MyWid

我是一个完全初学者在基维

当我试图在模块上重新实现教程时,我只能访问C:驱动器上的文件,而不能访问其他驱动器上的文件。我试图寻找filechoser的根,但没有结果


有没有办法访问其他驱动器?

您需要更改
filechooser.path
值:

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

Builder.load_string('''
<MyWidget>:
    file_chooser: file_chooser
    FileChooserListView:
        id: file_chooser
''')

class MyWidget(BoxLayout):
    def __init__(self, **kwargs):
        super(MyWidget, self).__init__(**kwargs)
        self.file_chooser.path = "D:\\"

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

if __name__ == '__main__':
    MyApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.lang导入生成器
Builder.load_字符串(“”)
:
文件选择器:文件选择器
文件选择器列表视图:
id:文件选择器
''')
类MyWidget(BoxLayout):
定义初始(自我,**kwargs):
超级(MyWidget,self)。\uuuuu初始化(**kwargs)
self.file\u chooser.path=“D:\\”
类别MyApp(应用程序):
def生成(自):
返回MyWidget()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
更高级的示例:

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

Builder.load_string('''
#:import lv kivy.uix.listview
#:import la kivy.adapters.listadapter

<MyWidget>:
    drives_list: drives_list
    file_chooser: file_chooser
    ListView:
        id: drives_list
        adapter:
            la.ListAdapter(data=root.get_win_drives(), selection_mode='single', allow_empty_selection=False, cls=lv.ListItemButton)
    FileChooserListView:
        id: file_chooser
''')

class MyWidget(BoxLayout):
    def __init__(self, **kwargs):
        super(MyWidget, self).__init__(**kwargs)
        self.drives_list.adapter.bind(on_selection_change=self.drive_selection_changed)

    def get_win_drives(self):
        if platform == 'win':
            import win32api

            drives = win32api.GetLogicalDriveStrings()
            drives = drives.split('\000')[:-1]

            return drives
        else:    
            return []

    def drive_selection_changed(self, *args):
        selected_item = args[0].selection[0].text
        self.file_chooser.path = selected_item

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

if __name__ == '__main__':
    MyApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.lang导入生成器
来自kivy.utils导入平台
Builder.load_字符串(“”)
#:导入lv kivy.uix.listview
#:导入la kivy.adapters.listadapter
:
驱动器列表:驱动器列表
文件选择器:文件选择器
列表视图:
id:驱动器列表
适配器:
la.ListAdapter(data=root.get\u win\u drives(),selection\u mode='single',allow\u empty\u selection=False,cls=lv.ListItemButton)
文件选择器列表视图:
id:文件选择器
''')
类MyWidget(BoxLayout):
定义初始(自我,**kwargs):
超级(MyWidget,self)。\uuuuu初始化(**kwargs)
self.drives\u list.adapter.bind(on\u selection\u change=self.drive\u selection\u change)
def get_win_驱动器(自):
如果平台==‘赢’:
导入win32api
drives=win32api.GetLogicalDriveStrings()
驱动器=驱动器。拆分('\000')[:-1]
回程驱动器
其他:
返回[]
def驱动器选择已更改(自身,*参数):
所选项目=参数[0]。所选内容[0]。文本
self.file\u chooser.path=所选项目
类别MyApp(应用程序):
def生成(自):
返回MyWidget()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
从中获取可用驱动器的配方