Kivy Filechooser 在滚动屏幕上重叠文本 [英] Kivy Filechooser overlapping text on scroll with screens

查看:27
本文介绍了Kivy Filechooser 在滚动屏幕上重叠文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  • Python:3.7
  • 操作系统:Windows 10
  • 基维:1.11.1
  • Kivy安装方式:pip

FileChooser 在滚动文件列表时会重叠文本.看起来第一个内容保持不变,滚动数据的内容显示在第一个内容的顶部.

FileChooser overlaps text on scrolling through files list. Looks like the 1st content stays and on scroll the content of scrolled data is getting displayed on top of 1st content.


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)

截图

推荐答案

对于面临同样问题的人,我通过将 FileChooser 替换为 Plyer 的原生文件选择器来解决.Github 上的讨论可以在这里找到

For people who are facing the same issue, I resolved by replacing FileChooser with Plyer's native filechooser. Disussion on Github can be found here

这篇关于Kivy Filechooser 在滚动屏幕上重叠文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆