Python 用.csv文件填充Kivy小部件
大家好,我需要一些帮助,我有一个.csv文件,其中包含一些数据,我正在尝试使用从中获得的数据填充一些kivy小部件。到目前为止,一切都运行正常,但在添加小部件时,我认为我只是将它们添加到类实例中,而不是框布局中 这是我的.csv:Python 用.csv文件填充Kivy小部件,python,csv,kivy,Python,Csv,Kivy,大家好,我需要一些帮助,我有一个.csv文件,其中包含一些数据,我正在尝试使用从中获得的数据填充一些kivy小部件。到目前为止,一切都运行正常,但在添加小部件时,我认为我只是将它们添加到类实例中,而不是框布局中 这是我的.csv: My hero academics,fighting,midoriya alice,test,malcolm 下面是我的代码块 from kivy.app import App from kivy.uix.button import Button
My hero academics,fighting,midoriya
alice,test,malcolm
下面是我的代码块
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.lang import Builder
from kivy.properties import ListProperty
import csv
Builder.load_string("""
<Test>:
orientation: "vertical"
padding: 10
spacing: 10
BoxLayout:
Label:
text:'list 1'
Label:
text:'label 2'
"""
)
class Test(BoxLayout):
label_value = ListProperty()
testList= ['potato', 'jake', 'ofu', 'zach']
def __init__(self, **kw):
super(Test, self).__init__(**kw)
testlist = open("C:/Users/zfarley/Documents/Development/python_project/kivy-app/TEST/zachList.csv").read()
#reads in data
zach_list = testlist.split("\n")
item_count= 1
for value in zach_list:
btn= Button(text= str(value), pos=(100,10))
label= Label(text=str(item_count) )
item_count= item_count + 1
#self.rows= rows
self.add_widget(label)
self.add_widget(btn)
class TestApp(App):
def build(self):
return Test()
TestApp().run()
从kivy.app导入应用
从kivy.uix.button导入按钮
从kivy.uix.boxlayout导入boxlayout
从kivy.uix.label导入标签
从kivy.lang导入生成器
从kivy.properties导入ListProperty
导入csv
生成器。加载\u字符串(“”)
:
方向:“垂直”
填充:10
间距:10
盒子布局:
标签:
文本:“列表1”
标签:
文本:“标签2”
"""
)
类别测试(BoxLayout):
label_value=ListProperty()
testList=['potato'、'jake'、'ofu'、'zach']
def初始功率(自身功率,**kw):
超级(自测试)。\uuuu初始功率(**kw)
testlist=open(“C:/Users/zfarley/Documents/Development/python_project/kivy app/TEST/zachList.csv”).read()
#读入数据
zach_list=testlist.split(“\n”)
项目数量=1
对于zach_列表中的值:
btn=按钮(文本=str(值),位置=(100,10))
标签=标签(文本=str(项目计数))
项目数量=项目数量+1
#self.rows=行
self.add_小部件(标签)
self.add_小部件(btn)
类TestApp(应用程序):
def生成(自):
返回测试()
TestApp().run()
运行代码时会发生什么情况?因为您正在拆分换行符(“\n”)上的输入,所以zach_列表将只有一个元素(整行),看起来您将在布局中添加一个按钮和一个标签。问题是什么?问题是我添加的按钮没有遵循我设置的框布局格式。例如,默认方向为水平,但只有前两个标签以水平方式填充。将按钮添加到屏幕时,它不会进入my BoxLayout运行代码时会发生什么情况?因为您正在拆分换行符(“\n”)上的输入,所以zach_列表将只有一个元素(整行),看起来您将在布局中添加一个按钮和一个标签。问题是什么?问题是我添加的按钮没有遵循我设置的框布局格式。例如,默认方向为水平,但只有前两个标签以水平方式填充。将按钮添加到屏幕时,它不会进入我的boxlayout