Я следовал документации по использованию 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.