0

假设我有 4 个按钮,称为 1、2、3、4,按第一个按钮我想显示文本,按第二个按钮我想显示文本 2,依此类推。

有没有办法在不为每个文本创建新窗口的情况下这样做?

我希望将代码放在 kv 文件中。

4

1 回答 1

1

所以当你问我做了一个脚本来改变标签只有按钮这是我的 .py 文件有 4 个功能。它所要做的就是,当您按下具有相应编号的按钮时。标签也会改变...希望你喜欢

import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from kivy.config import Config
from kivy.uix.button import Button
from kivy.core.window import Window
from kivy.uix.textinput import TextInput
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.dropdown import DropDown
from kivy.core.text import Text
from kivy.core.text.markup import *
from kivy.properties import ObjectProperty
from kivy.core.window import Window
import os
import sqlite3 as sql



class Mainscreen(Screen):
    dom = ObjectProperty(None)

    def changeit(self):
        self.dom.text = "1"

    def changeit2(self):
        self.dom.text = "2"

    def changeit3(self):
        self.dom.text = "3"

    def changeit4(self):
        self.dom.text = "4"


class WindowManager(ScreenManager):
    pass

kv = Builder.load_file('kv.kv')

class TESTApp(App):
    def build(self):
        return kv 


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

现在我的 kivy 文件 (.kv)

WindowManager:
    Mainscreen:


<Mainscreen>:

    name: "main"
    dom: change

    Label:
        id: change
        text: "Hello there"
        font_size: 52


    GridLayout:
        cols:2
        size_hint: 0.2,0.2
        pos_hint: {'x': 0.25, 'y':0.2}

        Button:
            text: "1"
            on_release: root.changeit()


        Button:
            text: "2"
            on_release: root.changeit2()

        Button:
            text: "3"
            on_release: root.changeit3()

        Button:
            text: "4"
            on_release: root.changeit4()

编辑:如果有帮助,就像答案一样

于 2020-05-27T18:55:23.083 回答