繁体   English   中英

Kivy可滚动标签:无法读取标签的开头和结尾

[英]Kivy scrollable label: impossible to read the beginning and the end of the label

我有这些可滚动的标签,但我看不到它们的开头和结尾(字母以1开头,字母以8开头)。

另一个问题是滚动视图从中间开始,并在释放滚动时自动跳回到中心。 最好让它显示左侧部分,让标签停下来滚动。

我使用python 3.6和Kivy 1.9.2.dev0,我的代码必须在python中(没有.kv文件或生成器)

import kivy

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.popup import Popup
from kivy.uix.label import Label
# from kivy.properties import StringProperty
from kivy.uix.scrollview import ScrollView

class Test(App):
    def build(self):
        layout_pop  = GridLayout (cols=3)
        for i in range(3):
            l = Label(
                 text="1abcdefghijklmnopqrstuvwxyz_2abcdefghijklmnopqrstuvwxyz_3abcdefghijklmnopqrstuvwxyz_4abcdefghijklmnopqrstuvwxyz_5abcdefghijklmnopqrstuvwxyz_6abcdefghijklmnopqrstuvwxyz_7abcdefghijklmnopqrstuvwxyz_8abcdefghijklmnopqrstuvwxyz",
                 font_size=15,
                 color=(1,1,3,1), 
                 size_hint_x= None,
                 width=600)  
            l.bind(size_hint_min_x=l.setter('width'))
            scroll = ScrollView(size_hint=(None, None), size=(200, 30))
            scroll.add_widget(l)
            layout_pop.add_widget(scroll)
        return layout_pop


Test().run()

我只需要使用l.bind(texture_size=l.setter('size')) 修复了2个问题。 这是更新的def函数:

def build(self):
    layout_pop  = GridLayout (cols=3)
    for i in range(3):
        l = Label( 
            text="1abcdefghijklmnopqrstuvwxyz_2abcdefghijklmnopqrstuvwxyz_3abcdefghijklmnopqrstuvwxyz_4abcdefghijklmnopqrstuvwxyz_5abcdefghijklmnopqrstuvwxyz_6abcdefghijklmnopqrstuvwxyz_7abcdefghijklmnopqrstuvwxyz_8abcdefghijklmnopqrstuvwxyz \n1abcdefghijklmnopqrstuvwxyz_2abcdefghijklmnopqrstuvwxyz_3abcdefghijklmnopqrstuvwxyz_4abcdefghijklmnopqrstuvwxyz_5abcdefghijklmnopqrstuvwxyz_6abcdefghijklmnopqrstuvwxyz_7abcdefghijklmnopqrstuvwxyz_8abcdefghijklmnopqrstuvwxyz", 
            font_size=15, 
            color=(1,1,3,1), 
            size_hint_x= None)
        l.bind(texture_size=l.setter('size'))
        l.bind(size_hint_min_x=l.setter('width'))
        scroll = ScrollView(size_hint=(None, None), size=(200, 30))
        scroll.add_widget(l)
        layout_pop.add_widget(scroll)
    return layout_pop

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM