当前位置: 代码迷 >> python >> 试图使Kivy按钮弹出一个文本框 例 产量
  详细解决方案

试图使Kivy按钮弹出一个文本框 例 产量

热度:50   发布时间:2023-07-16 10:22:17.0

相似/相关的链接并没有太大帮助:

我在这里待了几个小时,发现了与我类似的问题,但实际上没有任何作用。 这是我要尝试的操作:创建一个按钮,按下该按钮时,将拉出文本输入框,然后在短字符串后显示您在按钮上键入的内容。 EG按钮的开始像:“ LP:”您输入文本:“ 4000”按钮现在显示:“ LP:4000”我将如何做到这一点? 如果那不是完全可能的话,那么我只要按一下按钮就可以得到输入。 我什至似乎都无法做到。 对于Kivy来说是非常新的东西,而对于Python来说还相当新。 按钮代码(KV文件):

    <FloatLayout>:
        Button:
           name: 'LP'
           id: LP
           text: "LP: 4000"
           size_hint: 0.14, 0.15
           pos_hint: {"left": 1, "top": 0.8105}

类(Py文件):

    class LPInput(Widget):
        pass

输入代码(KV文件):

    <LPInput>:
        size_hint: 0.14, 0.15
        pos_hint: {"left": 1, "top": 0.8105}

        TextInput:
            id: lifepoint
            text: ""

        Label:
            id: currlp #not sure this is doing anything
            text: "LP: "

我写了一些其他的代码,试图通过不同的方法来创建它,但是让我沮丧的是,我保存了保存这些文件的文件,所以这就是我目前所拥有的。

下面的解决方案假定LPInput是根窗口小部件。

<LPInput>:
    size_hint: 0.14, 0.15
    pos_hint: {"left": 1, "top": 0.8105}

    TextInput:
        id: lifepoint
        text: ""

    Label:
        id: currlp #not sure this is doing anything
        text: "LP: "

<FloatLayout>:
    Button:
       name: 'LP'
       id: LP
       text: "LP: "
       size_hint: 0.14, 0.15
       pos_hint: {"left": 1, "top": 0.8105}
       on_release:
           self.text = "LP: " + app.root.ids.lifepoint.text

以下是针对Kv语言的三个关键字:

app :始终引用您的应用程序的实例。

root :指当前规则中的基本小部件/模板

self :始终引用当前小部件

main.py

from kivy.lang import Builder
from kivy.base import runTouchApp

runTouchApp(Builder.load_string('''
#:kivy 1.11.0
FloatLayout:

    TextInput:
        id: lifepoint
        text: ""
        size_hint: 0.14, 0.15
        pos_hint: {"left": 1, "top": 0.8105}

    Button:
        name: 'LP'
        id: LP
        text: "LP: "
        size_hint: 0.14, 0.15
        pos_hint: {"right": 1, "top": 0.8105}
        on_release:
            self.text = "LP: " + root.ids.lifepoint.text
'''))

产量