问题描述
我是Kivy python的新手,我需要为Android开发一个移动应用程序。它的设计非常简单,但我似乎找不到任何使它起作用的方法。
似乎是一个非常基本的设计。因此,每次函数在控制台上执行“打印”时,它应该出现在输出中。并且可以随时按此按钮来终止或启动该功能。
有人可以帮我吗?
解决方法
尝试一下:
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()