Python 如何取消选择kivy filechooser列表视图中选定的多个文件

Python 如何取消选择kivy filechooser列表视图中选定的多个文件,python,user-interface,kivy,filechooser,Python,User Interface,Kivy,Filechooser,如何清除kivy Filechooser的只读列表属性选择,或者是否有任何解决方法?问题是,即使我返回到我的Filechooser窗口,文件仍保持选中状态,这真的很烦人。即使kivy Filechooser的选择是只读的,您只需将选择值设置为[] 代码示例: # import from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import Screen, ScreenManager

如何清除kivy Filechooser的只读列表属性选择,或者是否有任何解决方法?问题是,即使我返回到我的Filechooser窗口,文件仍保持选中状态,这真的很烦人。

即使kivy Filechooser的选择是只读的,您只需将选择值设置为
[]

代码示例:

# import
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager


class SM(ScreenManager):
    pass


class Screen1(Screen):
    def selected(self, filename):
        # displaying seleted file name as a label
        self.ids.lb.text = str(filename)


class Screen2(Screen):
    def deselect_action(self):
        # access screen1
        s1 = self.manager.get_screen('first')
        # resetting file selection
        s1.ids.select_file.selection = []

# kivy file
kv = Builder.load_string("""
SM:
    Screen1:
    Screen2:

<Screen1>:
    name: 'first'

    BoxLayout:
        orientation: 'vertical'
    
        FileChooserIconView:
            id: select_file
            on_selection: root.selected(select_file.selection)
        Label:
            id: lb
            text: 'default'
        Button:
            text: 'go to second screen'
            on_press: 
                app.root.current = 'second'


<Screen2>:
    name: 'second'

    Button:
        text: 'go back'
        on_press:
            app.root.current = "first"
            root.deselect_action()
""")



class filechoosing(App):
    def build(self):
        return kv

filechoosing().run()
#导入
从kivy.app导入应用程序
从kivy.lang导入生成器
从kivy.uix.screenmanager导入屏幕,screenmanager
SM类(屏幕管理器):
通过
类别屏幕1(屏幕):
已选择def(自身,文件名):
#将选定的文件名显示为标签
self.ids.lb.text=str(文件名)
第2类屏幕(屏幕):
def取消选择_操作(自身):
#访问屏幕1
s1=self.manager.get_屏幕('first')
#重置文件选择
s1.ids.select_file.selection=[]
#奇维锉刀
kv=生成器。加载字符串(“”)
SM:
屏幕1:
屏幕2:
:
名字:“第一”
盒子布局:
方向:“垂直”
FileChooseConView:
id:选择\u文件
在\u选择上:root.selected(选择\u file.selection)
标签:
id:lb
文本:“默认值”
按钮:
文本:“转到第二个屏幕”
新闻界:
app.root.current='秒'
:
姓名:“第二”
按钮:
文本:“返回”
新闻界:
app.root.current=“第一”
root.deselect_action()
""")
类文件选择(应用程序):
def生成(自):
回流千伏
FileSelecting().run()

在这里您可以看到,标签获取所选文件的值。返回到Filechooser窗口屏幕时,没有选择。

即使kivy Filechooser的选择是只读的,您也可以通过将选择值设置为
[]
来清除选择

代码示例:

# import
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager


class SM(ScreenManager):
    pass


class Screen1(Screen):
    def selected(self, filename):
        # displaying seleted file name as a label
        self.ids.lb.text = str(filename)


class Screen2(Screen):
    def deselect_action(self):
        # access screen1
        s1 = self.manager.get_screen('first')
        # resetting file selection
        s1.ids.select_file.selection = []

# kivy file
kv = Builder.load_string("""
SM:
    Screen1:
    Screen2:

<Screen1>:
    name: 'first'

    BoxLayout:
        orientation: 'vertical'
    
        FileChooserIconView:
            id: select_file
            on_selection: root.selected(select_file.selection)
        Label:
            id: lb
            text: 'default'
        Button:
            text: 'go to second screen'
            on_press: 
                app.root.current = 'second'


<Screen2>:
    name: 'second'

    Button:
        text: 'go back'
        on_press:
            app.root.current = "first"
            root.deselect_action()
""")



class filechoosing(App):
    def build(self):
        return kv

filechoosing().run()
#导入
从kivy.app导入应用程序
从kivy.lang导入生成器
从kivy.uix.screenmanager导入屏幕,screenmanager
SM类(屏幕管理器):
通过
类别屏幕1(屏幕):
已选择def(自身,文件名):
#将选定的文件名显示为标签
self.ids.lb.text=str(文件名)
第2类屏幕(屏幕):
def取消选择_操作(自身):
#访问屏幕1
s1=self.manager.get_屏幕('first')
#重置文件选择
s1.ids.select_file.selection=[]
#奇维锉刀
kv=生成器。加载字符串(“”)
SM:
屏幕1:
屏幕2:
:
名字:“第一”
盒子布局:
方向:“垂直”
FileChooseConView:
id:选择\u文件
在\u选择上:root.selected(选择\u file.selection)
标签:
id:lb
文本:“默认值”
按钮:
文本:“转到第二个屏幕”
新闻界:
app.root.current='秒'
:
姓名:“第二”
按钮:
文本:“返回”
新闻界:
app.root.current=“第一”
root.deselect_action()
""")
类文件选择(应用程序):
def生成(自):
回流千伏
FileSelecting().run()
在这里您可以看到,标签获取所选文件的值。返回到Filechooser窗口屏幕时,没有选择