0

Kivy ライブラリを使用した Python アプリケーションで問題が発生しています。特に、TabbedPanelItem で要素のスクロール可能なリストを作成しようとしていますが、リストがスクロールしない理由がわかりません。

ここに私のkvファイルがあります:

#:import sm kivy.uix.screenmanager
ScreenManagement:
     transition: sm.FadeTransition()
     SecondScreen:

<SecondScreen>:
    tabba: tabba
    name: 'second'
    FloatLayout:
        background_color: (255, 255, 255, 1.0)
        BoxLayout:
            orientation: 'vertical'
            size_hint: 1, 0.10
            pos_hint: {'top': 1.0}
            canvas:
                Color:
                    rgba: (0.98, 0.4, 0, 1.0)
                Rectangle:
                    pos: self.pos
                    size: self.size
            Label:
                text: 'MyApp'
                font_size: 30
                size: self.texture_size

        BoxLayout:
            orientation: 'vertical'
            size_hint: 1, 0.90
            Tabba:
                id: tabba

        BoxLayout:
            orientation: 'vertical'
            size_hint: 1, 0.10
            pos_hint: {'bottom': 1.0}
            Button:
                background_color: (80, 1, 0, 1.0)
                text: 'Do nop'
                font_size: 25


<Tabba>:
    do_default_tab: False
    background_color: (255, 255, 255, 1.0)

    TabbedPanelItem:
        text: 'First_Tab'
        Tabs:

    TabbedPanelItem:
        text: 'Second_Tab'
        Tabs:

    TabbedPanelItem:
        text: 'Third_Tab'
        Tabs:


<Tabs>:
    grid: grid
    ScrollView:
        scroll_timeout: 250
        scroll_distance: 20
        do_scroll_y: True
        do_scroll_x: False
        GridLayout:
            id: grid
            cols: 1
            spacing: 10
            padding: 10
            Label:
                text:'scroll'
                color: (0, 0, 0, 1.0)
            Label:
                text:'scroll'
                color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)

そしてここに私の.pyコード:

__author__ = 'drakenden'

__version__ = '0.1'

import kivy
kivy.require('1.9.0') # replace with your current kivy version !

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.properties import StringProperty, ObjectProperty,NumericProperty
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.utils import platform
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.scrollview import ScrollView

class Tabs(ScrollView):
    def __init__(self, **kwargs):
        super(Tabs, self).__init__(**kwargs)


class Tabba(TabbedPanel):
    pass


class SecondScreen(Screen):
    pass

class ScreenManagement(ScreenManager):
    pass

presentation = Builder.load_file("layout2.kv")

class MyApp(App):

    def build(self):
        return presentation


MyApp().run()

どこで/何が間違っていますか?

(ご意見、UI改善のご提案も受け付けます)

4

1 に答える 1

1

私自身はしばらくkivyを使用していませんが、正確に覚えていれば、ScrollView内のレイアウトはScrollViewの幅よりも大きい必要があるためです:1000px、GridView 1100px。したがって、100pxでスクロールすることが可能になります

于 2016-09-14T12:54:43.973 に答える