我想用Python用Kivy构建应用程序,但是遇到了一些错误,但我尝试解决了很多次,但我做不到。
我先打开相机屏幕。在屏幕上,我们看到网络摄像头屏幕,并且底部有2个按钮(播放和捕获)。当我按“播放”时,网络摄像头已打开,如果按“捕获”按钮,则正在拍摄快照。拍摄快照后,我们将转到左侧的屏幕。特别感谢Erik,他在下面构建了此工作代码。
但是当我捕获照片时,我们在左侧屏幕上,我想在左侧屏幕上显示一些文本(来自另一个py文件,例如基本hello1,hello2 ...等等)。
我知道我该如何基本上在仅具有打印功能的控制台中打印一个句子,但是我想从另一个py文件在左屏幕上的应用程序中同步写入许多打印功能的结果。
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
import time
class CheckScreen(Screen):
pass
class CameraClickScreen(Screen):
def capture(self):
camera = self.ids['camera']
timestr = time.strftime("%Y%m%d_%H%M%S")
camera.export_to_png("IMG_{}.png".format(timestr))
print("Captured")
GUI = Builder.load_string("""
GridLayout:
cols: 1
ScreenManager:
id: screen_manager
CameraClickScreen:
name: "camera_click_screen"
id: camera_click_screen
CheckScreen:
name: "check_screen"
id: check_screen
<CameraClickScreen>:
orientation: 'vertical'
GridLayout:
cols: 1
Camera:
id: camera
resolution: (640, 480)
play: False
ToggleButton:
text: 'Play'
on_press: camera.play = not camera.play
size_hint_y: None
height: '48dp'
Button:
text: 'Capture'
size_hint_y: None
height: '48dp'
on_press:
root.capture()
# root refers to <CameraClickScreen>
# app refers to TestCamera, app.root refers to the GridLayout: at the top
app.root.ids['screen_manager'].transition.direction = 'left'
app.root.ids['screen_manager'].current = 'check_screen'
<CheckScreen>:
Button:
text: "Next Screen"
font_size: 50
""")
class TestCamera(App):
def build(self):
return GUI
TestCamera().run()
通常使用此代码,在左侧屏幕上,我们会看到带有按钮的“下一屏”句子。我想查看来自py文件的可变文本。例如,Hello 1,然后清除屏幕,Hello 2,然后清除屏幕,...,Hello 5,然后停止。
如何添加此基本打印功能并与应用程序集成以在左侧屏幕上显示我们?