Kivy-我的ScrollView不滚动 [英] Kivy - My ScrollView doesn't scroll

查看:193
本文介绍了Kivy-我的ScrollView不滚动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在带有Kivy库的Python应用程序中遇到问题.特别是,我试图在TabbedPanelItem中创建元素的可滚动列表,但我不知道为什么我的列表不滚动.

I'm having problems in my Python application with Kivy library. In particular I'm trying to create a scrollable list of elements in a TabbedPanelItem, but I don't know why my list doesn't scroll.

这是我的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()

我在哪里/哪里做错了?

Where/What am I doing wrong?

(也接受关于UI改进的评论和建议)

(Comments and suggests for UI improvements are also accepted)

推荐答案

我很久没使用过奇异果了,但是如果我还记得的话: 因为ScrollView中的布局应该比滚动视图大 例如ScrollView宽度:1000像素,GridView 1100像素. 因此可以将其滚动100px

I Myself haven't used kivy for a while but if I remember exacly: Because layout within ScrollView should be BIGGER than scroll view ex ScrollView width: 1000px, GridView 1100px. So it will be possible to scroll it by 100px

这篇关于Kivy-我的ScrollView不滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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