Перекрывающийся контент во всплывающих окнах в кивах - PullRequest
4 голосов
/ 27 февраля 2020

Я следовал документации по использованию FileChoose на веб-сайте kivy (https://kivy.org/doc/stable/api-kivy.uix.filechooser.html). Однако, когда я открываю всплывающее окно для LoadDialog () и нажимаю на один из значков, происходит много совпадений для содержимого папки.

main.py

class Root(Screen):
    loadfile = ObjectProperty(None)
    savefile = ObjectProperty(None)
    text_input = ObjectProperty(None)

    def dismiss_popup(self):
        self._popup.dismiss()

    def show_load(self):
        content = LoadDialog(load=self.load, cancel=self.dismiss_popup)
        self._popup = Popup(title="Load file", content=content,
                            size_hint=(0.9, 0.9))
        self._popup.open()

class LoadDialog(FloatLayout):
    load = ObjectProperty(None)
    cancel = ObjectProperty(None)

main.kv

<LoadDialog>:
    BoxLayout:
        size: root.size
        pos: root.pos
        orientation: "vertical"
        FileChooserIconView:
            id: filechooser

            GridLayout:
                cols:2
                size_hint_y: None
                height: 30
                Button:
                    text: "Cancel"
                    on_release: root.cancel()

                Button:
                    text: "Load"
                    on_release: root.load(filechooser.path, filechooser.selection)

Если я использую BoxLayout вместо FloatLayout в классе LoadDialog (), проблема с перекрытием решается, однако всплывающее окно делится пополам с два столбца.

main.py

class LoadDialog(BoxLayout):
    load = ObjectProperty(None)
    cancel = ObjectProperty(None)

Я также пытался использовать GridLayout, но у него та же проблема с перекрытием, что и с FloatLayout.

...