Python 基于用户输入在.kv文件中创建小部件
我想让用户输入一个数字,然后显示该数量的小部件 我就是这样做的:Python 基于用户输入在.kv文件中创建小部件,python,python-3.x,kivy,kivy-language,Python,Python 3.x,Kivy,Kivy Language,我想让用户输入一个数字,然后显示该数量的小部件 我就是这样做的: 从kivy.app导入应用 从kivy.uix.label导入标签 从kivy.uix.gridlayout导入gridlayout 类主应用程序(应用程序): def生成(自): 返回列表() 类列表(网格布局): 定义初始(自我,**kwargs): 超级(列表,自我)。\uuuuu初始化(**kwargs) self.cols=1 用户输入=3#只是一个例子 对于范围内的i(用户输入): label=label(text=“
从kivy.app导入应用
从kivy.uix.label导入标签
从kivy.uix.gridlayout导入gridlayout
类主应用程序(应用程序):
def生成(自):
返回列表()
类列表(网格布局):
定义初始(自我,**kwargs):
超级(列表,自我)。\uuuuu初始化(**kwargs)
self.cols=1
用户输入=3#只是一个例子
对于范围内的i(用户输入):
label=label(text=“小部件编号{}:”.format(i+1))
self.add_小部件(标签)
如果名称=“\uuuuu main\uuuuuuuu”:
app=MainApp()
app.run()
问题是:kivy语言的要点是将逻辑保存在.py
文件中,将设计保存在.kv
文件中
在执行此操作时(有一个for
循环),是否有任何方法可以将设计仅保留在.kv
文件中
(我是kivy的新手,如果我问了一个简单的问题,很抱歉。:)当然可以
KV文件主要用于设计外观,而程序的登录部分由PY文件处理
.kv文件
<classname>:
Button:
text:'click me'
on_release: root.function_to_call_from_py_file()
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
class List(GridLayout):
def function_to_call_from_py_file(self):
print('This function is called')
class MainApp(App):
def build(self):
return List()
if __name__ == "__main__":
app = MainApp()
app.run()
您可以在函数中添加for循环它是一个显示小部件的
for
循环。如果函数中有for
循环,则我的小部件(设计)也必须在函数中。在kv文件中为布局指定id。。。。并使用for循环中的add_widget选项在.kv
文件中动态添加widgetso,我只制作一次该widget?我会试试。是的,您只在kv中进行布局,并在py文件中添加来自for循环的小部件