Kivy如何将功能输出显示为文本

问题描述

我是Kivy python的新手,我需要为Android开发一个移动应用程序。它的设计非常简单,但我似乎找不到任何使它起作用的方法

enter image description here

似乎是一个非常基本的设计。因此,每次函数在控制台上执行“打印”时,它应该出现在输出中。并且可以随时按此按钮来终止或启动该功能

有人可以帮我吗?

解决方法

尝试一下:

from kivy.app import App
from kivy.lang import Builder
import threading
import time

kv = '''
FloatLayout:
    ScrollView:
        pos_hint: {'left': 1,'top': 1}
        size_hint_y: .8
        do_scroll_x: False
        Label:
            id: debugarea
            size_hint: None,None
            size: self.texture_size
    Button:
        size_hint_y: .1
        text: 'start'
        on_release:
            app.do_print()
            self.text = 'stop' if app.is_printing else 'start'
'''

class MainApp(App):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)
        self.is_printing = False
        self.print_thread = None
        self.root_widget = Builder.load_string(kv)

    def build(self):
        return self.root_widget

    def printer(self):
        i = 0
        while self.is_printing:
            self.root_widget.ids['debugarea'].text += f'Hello {i}' + '\n'
            i += 1
            time.sleep(1)

    def do_print(self):
        if not self.is_printing:
            self.is_printing = True
            self.print_thread = threading.Thread(target=self.printer)
            self.print_thread.start()
        else:
            self.is_printing = False
            self.print_thread.join()
            self.print_thread = None

MainApp().run()