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 彈出窗口,它會轉(zhuǎn)到文件選擇器,每次我嘗試訪問文件時都會出錯,如果可能的話可以用 python 語言而不是 kivy 編寫答案。IndexError: list index out of range
1 回答

九州編程
TA貢獻1785條經(jīng)驗 獲得超4個贊
問題在于該行:
self.upload_pic = Button(text='Upload', size_hint=(1,.2), on_press= self.uploading(file_choose.selection))
該行在定義self.uploading(file_choose.selection)時執(zhí)行Button,遠在您有機會選擇FileChooser. 您可以使用partial定義要調(diào)用的函數(shù),如下所示:
self.upload_pic = Button(text='Upload', size_hint=(1, .2), on_press=partial(self.uploading, file_choose))
定義partial了一個函數(shù)(及其參數(shù)),但不調(diào)用它。那么你的self.uploading()方法可以是這樣的:
def uploading(self, file_chooser, button):
print(file_chooser.selection[0])
添加回答
舉報
0/150
提交
取消