Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用.csv文件填充Kivy小部件_Python_Csv_Kivy - Fatal编程技术网

Python 用.csv文件填充Kivy小部件

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

大家好,我需要一些帮助,我有一个.csv文件,其中包含一些数据,我正在尝试使用从中获得的数据填充一些kivy小部件。到目前为止,一切都运行正常,但在添加小部件时,我认为我只是将它们添加到类实例中,而不是框布局中

这是我的.csv:

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