Kivy Filechooser перекрывающийся текст на прокрутке с экранами - PullRequest
0 голосов
/ 20 февраля 2020

Версии

  • Python: 3.7
  • ОС: Windows 10
  • Kivy: 1.11.1
  • Способ установки Kivy : pip

Описание

FileChooser перекрывает текст при прокрутке списка файлов. Похоже, что 1-й контент остается, и при прокрутке контент прокручиваемых данных отображается поверх 1-го контента.

Код и журналы


from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.uix.popup import Popup
from kivy.properties import ObjectProperty, BoundedNumericProperty, StringProperty
from kivy.lang import Builder

class FirstWindow(Screen):
    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()

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

    def cancel(self):
        pass

    def load(path, selection):
        print(path, selection)

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

class EditorApp(App):
    def build(self):
        kv = Builder.load_file("editor.kv")
        self.screen_manager = ScreenManager()

        screen = FirstWindow(name="first")
        self.screen_manager.add_widget(screen)
        self.screen_manager.current = "first"

        return self.screen_manager

if __name__ == "__main__":
    editor_app = EditorApp()
    editor_app.run()

Файл KV

<FirstWindow>:
  BoxLayout:
    orientation: "vertical"
    Button:
      text: "Select Folder"
      on_release: root.show_load()

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

    BoxLayout:
      size_hint_y: None
      height: 30
      Button:
        text: "Cancel"
        on_release: root.cancel()

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

Скриншоты image

...