滚动标签

时间:2015-01-30 09:19:56

标签: python label scrollview kivy

我正在为自己写一个小的应用程序,我遇到了一些麻烦。 我无法使用ScrollView滚动标签。通过阅读文本文件显示标签。

我展示了我的部分代码。

.py代码:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView

class GeneralForm(TabbedPanel):
    txt_show = ObjectProperty()

    def SHOW_CONTENT(self):
        FILE=open('data')
        A=FILE.read()
        self.txt_show.text=A

class TimeTable(App):

    def build(self):
        return GeneralForm()

if __name__ == '__main__':
    TimeTable().run()

.kv代码:

<GeneralForm>:
    do_default_tab: False
    txt_show:txt1
    TabbedPanelItem:
        text: 'Mon'
        on_release: root.SHOW_CONTENT()
        BoxLayout:
            orientation: 'vertical'
            ScrollView:
                size: self.size
                Label:
                    id:txt1
                    text: ''
                    size_hint_y: None
            BoxLayout:
                Button:
                    text: 'Edit'
                Button:
                    text: 'Exit'
    TabbedPanelItem:
        text: 'Tue'
    TabbedPanelItem:
        text: 'Wed'

“data”文件是一个简单的txt文件,包含很多行文本。 当该文本显示在标签中时 - 它被截断。

如何为标签中的文字添加滚动?

提前致谢。

2 个答案:

答案 0 :(得分:3)

ScrollView:
    Label:
        id:txt1
        text: ''
        text_size: self.width, None  # Set the text wrap box width
        size_hint_y: None
        height: self.texture_size[1]  # Set the Label height to the text height

答案 1 :(得分:0)

转到网站https://github.com/cbpowell/MarqueeLabel并下载。 将.m和.h文件复制到项目中并添加石英核心框架。 转到.h文件并导入marquee.h文件。

#import <UIKit/UIKit.h>
#import "MarqueeLabel.h"

@interface PlayerViewController : UIViewController

然后在UIViewController中创建一个标签,然后按下ctrl将其拖动到.h文件。继续使用插座选项,写下所需标签的名称,将UILabel更改为MarqueeLabel。 就像那样:

@property (strong, nonatomic) IBOutlet MarqueeLabel *nomeMusicaLabel;

在视图中选择标签,转到屏幕右侧的实用工具栏,转到身份检查器(第三个按钮),将类更改为MarqueeLabel。

转到.m文件并编写此代码:

nomeMusicaLabel.text = @"Write your text here";
self.nomeMusicaLabel.marqueeType = MLContinuous;
self.nomeMusicaLabel.scrollDuration = 15.0;
self.nomeMusicaLabel.animationCurve = UIViewAnimationOptionCurveEaseInOut;
self.nomeMusicaLabel.fadeLength = 10.0f;
self.nomeMusicaLabel.leadingBuffer = 30.0f;
self.nomeMusicaLabel.trailingBuffer = 20.0f;

在MarkeeLabel zip文件中,有一些项目包含许多其他类型的scrool文本。