Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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 如何使用RecycleView向Kivy应用程序添加小部件_Python_Kivy - Fatal编程技术网

Python 如何使用RecycleView向Kivy应用程序添加小部件

Python 如何使用RecycleView向Kivy应用程序添加小部件,python,kivy,Python,Kivy,我对这个kivy应用程序有问题,我如何添加按钮?我尝试使用字符串生成器添加标签、按钮和其他小部件,但没有成功。我的代码是这样定向的,因为我无法让Recycleview正常工作,所以请原谅我的混乱 from kivy.app import App from kivy.lang import Builder from kivy.uix.recycleview import RecycleView import sqlite3 from kivy.uix.floatlayout import Floa

我对这个kivy应用程序有问题,我如何添加按钮?我尝试使用字符串生成器添加标签、按钮和其他小部件,但没有成功。我的代码是这样定向的,因为我无法让Recycleview正常工作,所以请原谅我的混乱

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
import sqlite3
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.widget import Widget


Builder.load_string('''
<RV>:
    viewclass: 'Label'
    RecycleBoxLayout:
    default_size: None, dp(36)
    default_size_hint: 1, None
    size_hint_y: None
    height: self.minimum_height
    orientation: 'vertical'
''')


class RV(RecycleView):
    def __init__(self, **kwargs):
        super(RV, self).__init__(**kwargs)
        try:
            conn = sqlite3.connect('UserInfo.db')
            cursor = conn.cursor()
            sqlite_select_query = """SELECT * from Login"""
            cursor.execute(sqlite_select_query)
            records = cursor.fetchall()

            self.data = [{'text': str(row[0]), 'color': (0, 0, 0, 1)}
                     for row in records]
            cursor.close()

        except sqlite3.Error as error:
            print("Failed to read data from sqlite table")


class TestApp(App):
    def build(self):
        return RV()


def runApp():
    TestApp().run()
# if __name__ == '__main__':
#   TestApp().run()

首先,必须保留对RV实例的引用。 类似于self.rv=rv,然后返回self.rv而不是返回rv

然后,你必须为你想要的每一个新项目添加一个带有文本和颜色键的新dict到你的self.rv.data列表中

之后,您可能需要从_数据调用self.rv.refresh_