首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在kivy弹出窗口中选择文件时出现索引错误

在kivy弹出窗口中选择文件时出现索引错误
EN

Stack Overflow用户
提问于 2020-08-14 19:05:04
回答 1查看 41关注 0票数 0
代码语言:javascript
运行
复制
def popping(self, button_instance):
        self.small_page = Popup(title='Choose jpg or png file',size_hint=(.8,.8))
        self.scroll = ScrollView()
        self.small_page.add_widget(self.scroll)
        file_choose = FileChooserListView()
        self.scroll.add_widget(file_choose)
        self.upload_pic = Button(text='Upload', size_hint=(1,.2), on_press= self.uploading(file_choose.selection))
        self.small_page.add_widget(self.upload_pic)
          
        
        
        self.small_page.open()
        
def uploading(self, filename):
        profile_pic.source = filename[0]

我有一个kivy弹出窗口,它转到一个文件选择器,每次我试图访问一个文件时,它都会给出错误,如果可能的话,可以回答是用python语言而不是kivy编写的。

代码语言:javascript
运行
复制
IndexError: list index out of range
EN

Stack Overflow用户

回答已采纳

发布于 2020-08-14 22:41:15

问题出在线路上:

代码语言:javascript
运行
复制
self.upload_pic = Button(text='Upload', size_hint=(1,.2), on_press= self.uploading(file_choose.selection))

该行在定义self.uploading(file_choose.selection)时执行Button,远在您有机会选择FileChooser中的任何内容之前。您可以使用partial定义要调用的函数,如下所示:

代码语言:javascript
运行
复制
self.upload_pic = Button(text='Upload', size_hint=(1, .2), on_press=partial(self.uploading, file_choose))

partial定义了一个函数(及其参数),但不调用它。那么你的self.uploading()方法可以是这样的:

代码语言:javascript
运行
复制
def uploading(self, file_chooser, button):
    print(file_chooser.selection[0])
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63411554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档