Python 在表中显示元组Kivy

Python 在表中显示元组Kivy,python,python-3.x,kivy,kivy-language,Python,Python 3.x,Kivy,Kivy Language,我有以下代码: import pymysql from kivy.app import App from kivy.lang import Builder from kivy.uix.button import Button db = pymysql.connect("host", "user", "password", "database") cursor = db.cursor() cursor.execute("SELECT phone_info FROM ants WHERE id='

我有以下代码:

import pymysql
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button

db = pymysql.connect("host", "user", "password", "database")
cursor = db.cursor()
cursor.execute("SELECT phone_info FROM ants WHERE id='onexT1'")
data_list = cursor.fetchall()
hello = list(data_list)

class ViewButton(Button):

    def print_data(self, data):
        print(data)

KV = '''

<ViewButton>:
    on_release:
        root.print_data(self.data)

RecycleView:
    data: ()
    viewclass: 'ViewButton'
    RecycleBoxLayout:
        default_size_hint: 1, None
        orientation: 'vertical'

'''


class Test(App):
    def build(self):
        root = Builder.load_string(KV)
        root.data = (item for item in hello)
        return root

if __name__ == '__main__':
    Test().run()
因此,我尝试将元组转换为列表,但它返回与上面相同的错误


我想要的是使用recycleview在表中显示元组/列表的内容。谢谢:)

RecycleView需要一个hashtable的iterable,例如一个字典列表,其中字典的键是viewclass中使用的属性,如下所示:

数据:

当前视图适配器使用的数据。这是一个目录 其键映射到viewclass的相应属性名称

数据是一个别名属性,用于获取和设置用于生成 这些观点

返回元组列表,我们必须将该元组列表转换为字典列表,其中字典键为“text”,因为它是ViewButton使用的属性

另一方面,ViewButton没有数据属性,只有文本,因此必须保存该信息

...
data_list = cursor.fetchall()

hello = [({"text": result[0]}) for result in data_list] # convert

class ViewButton(Button):
    def print_data(self, data):
        print(data)

KV = '''
<ViewButton>:
    on_release:
        root.print_data(self.text) # <--- 

RecycleView:
    viewclass: 'ViewButton'
    RecycleBoxLayout:
        default_size_hint: 1, None
        orientation: 'vertical'
'''

class Test(App):
    def build(self):
        root = Builder.load_string(KV)
        root.data = hello
        return root

if __name__ == '__main__':
    Test().run()
。。。
data\u list=cursor.fetchall()
hello=[({“text”:结果[0]})用于数据中的结果_列表]35;转换
类视图按钮(按钮):
def打印_数据(自身、数据):
打印(数据)
KV='''
:
发布时:

root.print_data(self.text)#我能问个问题吗?从这里的track.py脚本:当我切换track选项卡时,它只返回一个按钮,该选项卡应该在您回答时显示表格。在那件事上有什么帮助吗?谢谢:)@JezreelMartin为什么轨迹从屏幕和按钮继承?两者都是小部件,从两者继承是不正确的。哦,好的,谢谢,那么我应该让它只从屏幕继承吗?还是因为它继承了button,所以只返回一个按钮?谢谢:)@JezreelMartin你仍然没有回答我的问题,你继承遗产的目的是什么?因为屏幕返回按钮?
...
data_list = cursor.fetchall()

hello = [({"text": result[0]}) for result in data_list] # convert

class ViewButton(Button):
    def print_data(self, data):
        print(data)

KV = '''
<ViewButton>:
    on_release:
        root.print_data(self.text) # <--- 

RecycleView:
    viewclass: 'ViewButton'
    RecycleBoxLayout:
        default_size_hint: 1, None
        orientation: 'vertical'
'''

class Test(App):
    def build(self):
        root = Builder.load_string(KV)
        root.data = hello
        return root

if __name__ == '__main__':
    Test().run()