是否可以使用Kivy将多个文本输入打印到标签上?

2024-05-05 10:59:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个“NotesBoard”应用程序,你可以输入多个输入,并能够在标签上拖动它们,这是可能的使用Kivy,还是不是为了这样的目的

到目前为止,我能够在标签中键入一个字符串,但当我尝试移动它时,TextInput和按钮会移动到屏幕的中间。我不确定我是否正确使用了“散射”。 我还使用了两个BoxLayout,因为我很难调整TextInput和按钮的大小/与其他人一起固定

import kivy
from kivy.app import App
from kivy.properties import ObjectProperty
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.scatter import Scatter
from kivy.uix.widget import Widget


class MyLayout(Widget):
    txt_input = ObjectProperty(None)
    txt_output = ObjectProperty(None)

    def press(self):
        todo = self.txt_input.text

        # update label
        self.txt_output.text = todo


class MainApp(App):
    def build(self):
        return MyLayout()
        

if __name__ == "__main__":
    MainApp().run()

--

#:kivy 2.0.0

<MyLayout>:

    txt_input: txt_input
    txt_output: txt_output

    BoxLayout:
        orientation: 'vertical'
        size: root.width, root.height
        Scatter:
            Label:
                id: txt_output
                font_size: 150
        BoxLayout:
            cols: 2
            TextInput:
                pos: (0,0)
                id: txt_input
                size_hint_x: .8
                size_hint_y: None
                font_size: 150
            Button:
                pos: (1278,0)
                size_hint_x: .2
                size_hint_y: None
                text: "add"
                on_press: root.press()

提前谢谢


Tags: fromimportselftxtnoneinputoutputsize