Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Python 为什么kivymd文件管理器在单击浏览按钮时出错?_Python_Kivy_Kivymd - Fatal编程技术网

Python 为什么kivymd文件管理器在单击浏览按钮时出错?

Python 为什么kivymd文件管理器在单击浏览按钮时出错?,python,kivy,kivymd,Python,Kivy,Kivymd,单击浏览文件按钮浏览我的目录时出现问题 from kivymd.app import MDApp from kivy.lang.builder import Builder from kivy.uix.screenmanager import Screen, ScreenManager from kivy.core.window import Window from kivymd.uix.dialog import MDDialog from kivymd.uix.button import M

单击浏览文件按钮浏览我的目录时出现问题

from kivymd.app import MDApp
from kivy.lang.builder import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.core.window import Window
from kivymd.uix.dialog import MDDialog
from kivymd.uix.button import MDFlatButton
from kivymd.uix.filemanager import MDFileManager
from kivymd.toast import toast
from kivy.uix.modalview import ModalView

Window.size = (300, 500)

kv = """
ScreenManager:
    HomePage:
    ToolsPage:
    
<HomePage>:
    name:"home"
    MDBoxLayout:
        md_bg_color:.98 , .49 , 0 , 1
        orientation:"vertical"
        MDToolbar:
            title:"Camera"
            md_bg_color:.98 , .49 , 0 , 1
            specific_text_color: .23 , .22 , .25 , 1
            elevation:10
            left_action_items:[["menu" , lambda x : app_draw.set_state("open")]]
        Widget:
        
                
    MDNavigationDrawer:
        id:app_draw
        MDBoxLayout:
            md_bg_color:.98 , .49 , 0 , 1
            orientation:"vertical"
            padding:"5dp"
            spacing:"5dp"
            Image:
                source:"nic.JPG"
                
            MDLabel:
                text:"Yousef Jafari"
                font_style:"Subtitle1"
                size_hint_y:None
                height:self.texture_size[1]
            MDLabel:
                text:"Email : uz.i@gmail.com"
                font_style:"Caption"
                size_hint_y:None
                height:self.texture_size[1]
                
            ScrollView:    
                MDList:
                    MDFillRoundFlatIconButton:
                        text_color:.23 , .22 , .25 , 1
                        md_bg_color:.98 , .49 , 0 , 1
                        icon:"camera"
                        text:"Open Camera"
                    MDFillRoundFlatIconButton:
                        text_color:.23 , .22 , .25 , 1
                        md_bg_color:.98 , .49 , 0 , 1
                        icon:"eye"
                        text:"GoToolsPage"
                        on_press:root.manager.current="tools" 
                    MDFillRoundFlatIconButton:
                        text_color:.23 , .22 , .25 , 1
                        md_bg_color:.98 , .49 , 0 , 1
                        text:"Browse File"
                        icon:"folder"
                        on_release: app.file_manager_open()
      
<ToolsPage>:
    name:"tools"
    MDFloatLayout:
        md_bg_color:.98 , .49 , 0 , 1
        orientation:"vertical"
        MDLabel:
            pos:(0, 235)
            text:"ToolsPage"
            halign:"center"
            theme_text_color:"Custom"
            text_color:.23 , .22 , .25 , 1
            font_style:"Subtitle1"
            
            
        MDFlatButton:
            text:"Back to home"
            on_press:root.manager.current="home"
            pos:(190,0)
        
        MDFlatButton:
            text:"About"
            on_release:app.show_dialog()
        


class HomePage(Screen):
    pass
class ToolsPage(Screen):
    pass


sm = ScreenManager()
sm.add_widget(HomePage(name="home"))
sm.add_widget(ToolsPage(name="tools"))


class MyDemo(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        Window.bind(on_keyboard=self.events)
        self.manager_open = False
        self.manager = None

        self.dialog = MDDialog(
            title="About App Explain", text="This app designed by Yousef Jafari.", size_hint=(.8, None),
            buttons=[
                MDFlatButton(
                    text="Close", text_color=[1, 0, 0.2, 1]
                ),
            ],
        )

    def build(self):
        Demo = Builder.load_string(kv)
        return Demo

    def file_manager_open(self):
        if not self.manager:
            self.manager = ModalView(size_hint=(1, 1), auto_dismiss=False)
            self.file_manager = MDFileManager(
                exit_manager=self.exit_manager, select_path=self.select_path)
            self.manager.add_widget(self.file_manager)
            self.file_manager.show('/')
        self.manager_open = True
        self.manager.open()

    def show_dialog(self):
        self.dialog.open()

    def select_path(self, path):
        self.exit_manager()
        toast(path)

    def exit_manager(self, *args):
        self.manager_open = False
        self.file_manager.close()

    def events(self, instance, keyboard, keycode, text, modifiers):
        if keyboard in (1001, 27):
            if self.manager_open:
                self.file_manager.back()
        return True


MyDemo().run()

从kivymd.app导入MDApp
从kivy.lang.builder导入生成器
从kivy.uix.screenmanager导入屏幕,screenmanager
从kivy.core.window导入窗口
从kivymd.uix.dialog导入MDDialog
从kivymd.uix.button导入MDFlatButton
从kivymd.uix.filemanager导入MDFileManager
从kivymd.toast导入toast
从kivy.uix.modalview导入modalview
Window.size=(300500)
kv=”“”
屏幕管理器:
主页:
工具空间:
:
姓名:“家”
MDBoxLayout:
md_bg_颜色:.98、.49、0、1
方向:“垂直”
MDToolbar:
标题:“照相机”
md_bg_颜色:.98、.49、0、1
特定文字颜色:.23、.22、.25、1
标高:10
左侧动作项:[[“菜单”,lambda x:app_draw.set_state(“打开”)]]
小装置:
MDNavigationDrawer:
id:app_draw
MDBoxLayout:
md_bg_颜色:.98、.49、0、1
方向:“垂直”
填充:“5dp”
间距:“5dp”
图片:
资料来源:“nic.JPG”
MDLabel:
文字:“优素福·贾法里”
字体样式:“副标题1”
尺寸提示:无
高度:自身纹理大小[1]
MDLabel:
文本:“电子邮件:uz。i@gmail.com"
字体样式:“标题”
尺寸提示:无
高度:自身纹理大小[1]
滚动视图:
MDList:
MDFillRoundFlatIconButton:
文字颜色:.23、.22、.25、1
md_bg_颜色:.98、.49、0、1
图标:“摄像头”
文本:“打开相机”
MDFillRoundFlatIconButton:
文字颜色:.23、.22、.25、1
md_bg_颜色:.98、.49、0、1
图标:“眼睛”
文本:“GoToolsPage”
按:root.manager.current=“工具”
MDFillRoundFlatIconButton:
文字颜色:.23、.22、.25、1
md_bg_颜色:.98、.49、0、1
文本:“浏览文件”
图标:“文件夹”
发布时:app.file\u manager\u open()
:
名称:“工具”
MDF布局:
md_bg_颜色:.98、.49、0、1
方向:“垂直”
MDLabel:
职位:(0235)
文本:“工具空间”
哈利恩:“中心”
主题\文本\颜色:“自定义”
文字颜色:.23、.22、.25、1
字体样式:“副标题1”
MDFlatButton:
文字:“回到家”
按:root.manager.current=“home”
职位:(190,0)
MDFlatButton:
正文:“关于”
发布时:app.show\u dialog()
班级主页(屏幕):
通过
类工具页(屏幕):
通过
sm=屏幕管理器()
sm.add_小部件(主页(name=“home”))
sm.add_小部件(ToolsPage(name=“tools”))
类MyDemo(MDApp):
定义初始(自我,**kwargs):
超级()
绑定(在键盘上=self.events)
self.manager\u open=False
self.manager=无
self.dialog=MDDialog(
title=“关于应用程序解释”,text=“此应用程序由Yousef Jafari设计”,size\u hint=(.8,无),
钮扣=[
MDFlatButton(
text=“Close”,text\u color=[1,0,0.2,1]
),
],
)
def生成(自):
Demo=Builder.load\u串(千伏)
返回演示
def文件管理器打开(自):
如果不是自我管理者:
self.manager=ModalView(size\u hint=(1,1),auto\u dismise=False)
self.file\u manager=MDFileManager(
退出管理器=自我。退出管理器,选择路径=自我。选择路径)
self.manager.add_小部件(self.file_管理器)
self.file_manager.show(“/”)
self.manager\u open=True
self.manager.open()
def显示_对话框(自身):
self.dialog.open()
def选择路径(自身,路径):
self.exit_manager()
土司(路径)
def出口管理器(自身,*args):
self.manager\u open=False
self.file_manager.close()
def事件(自身、实例、键盘、键码、文本、修改器):
如果键盘处于(1001,27)位置:
如果self.manager\u打开:
self.file_manager.back()
返回真值
MyDemo().run()
错误代码: %(小部件,家长) kivy.uix.widget.WidgetException:无法添加,它已具有父级
进程结束,退出代码为1

您如何不获取语法错误?您可以启动多行字符串,但永远不会结束它。您不需要在
ModalView
中添加
self.file\u manager
。尝试不使用ModalView,它会正常工作