Переменная передачи всплывающего окна Kivy Filechooser (выбор)

я хочу передать переменную выбора из load_file_popup filechooser в графический интерфейс. когда я нажимаю кнопку загрузки после выбора файла, выдает ошибку

TypeError: объект «NoneType» не может быть вызван

Вот мой код (упрощенный)

class GUI(BoxLayout):

    file_path = StringProperty("Currently No File")


    def __init__(self, **kwargs):
        super(GUI, self).__init__(**kwargs)
        self.load_file_popup = load_file_popup()



    def load(self, selection):
        self.file_path = str(selection[0])
        self.dismiss()


class load_file_popup(Popup):

    load = ObjectProperty()

вот кв

<load_file_popup>:
    title: "Select File"
    size_hint: .9, .9
    SMSBoxLayout:
        orientation: "vertical"
        FileChooser:
            id: filechooser   
            FileChooserIconLayout


        SMSBoxLayout:
            size_hint: (1, 0.1)
            pos_hint: {'center_x': .5, 'center_y': .5}
            SMSButton:
                text: "Cancel"
                on_release: root.dismiss()
            SMSButton:
                text: "Load"
                on_release: root.load(filechooser.selection)
                id: ldbtn
                disabled: True if filechooser.selection==[] else False

person Community    schedule 22.01.2018    source источник


Ответы (1)


Я понял ответ на свою проблему, мне не хватало аргумента.

def __init__(self, **kwargs):
    super(GUI, self).__init__(**kwargs)
    self.load_file_popup = load_file_popup(load=self.load)

def load(self, selection):
    self.file_path = str(selection[0])
    self.load_file_popup.dismiss()
person Community    schedule 22.01.2018