python-3.x - Kivy:我希望有不同的按钮并在按下每个按钮时显示不同的文本,有没有办法在不制作不同窗口的情况下做到这一点?
问题描述
假设我有 4 个按钮,称为 1、2、3、4,按第一个按钮我想显示文本,按第二个按钮我想显示文本 2,依此类推。
有没有办法在不为每个文本创建新窗口的情况下这样做?
我希望将代码放在 kv 文件中。
解决方案
所以当你问我做了一个脚本来改变标签只有按钮这是我的 .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()
编辑:如果有帮助,就像答案一样
推荐阅读
- matlab - 使用 pcolor 和 contourf (MATLAB R2014b) 时 uicontextmenu 无法访问
- android - Xamarin.Forms + 主详细信息 + Android 上的 TalkBack
- c# - 格式化十进制类型而不返回字符串
- javascript - HTML 对齐是正确的
- python-3.x - 如何在查找重复行时将字典输出打印到新行
- java - Java JButton 在不同的类中创建和调用
- emscripten - 使用 Visual Studio 代码调试 emscripten
- variables - 如何更改特定 css 条件的手写笔变量
- elasticsearch - 强制合并还是不强制合并,这是个问题
- ios - 关闭 ViewController 会导致相机延迟