(kivy)如果不在RecycleView中使用空数据,我如何做到这一点?

2024-10-01 00:23:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我试图只显示数据库中的两列信息,其余的应该是空白文本输入。目前,该程序看起来像下面示例图片中的程序。我试图得到与图中相同的结果,但现在空字段是使用“空”数据生成的

main.py

def get_players_koti(self, joukkue_nimi):
        connection = sqlite3.connect("poytakirja.db")
        cursor = connection.cursor()


        if not joukkue_nimi == '': 
            cursor.execute("""SELECT joukkue_id from joukkueet WHERE nimi = ?""", (joukkue_nimi,))
            joukkue_id = cursor.fetchone()[0]
            print(joukkue_id)

            cursor.execute("""SELECT pelinumero, nimi FROM pelaajat WHERE joukkue_id = ? ORDER BY pelinumero ASC""", (joukkue_id,))
            rows = cursor.fetchall()
            rows_kopio = rows
            listaus_settings = []

            for x in rows_kopio:
                listaus_settings.append(list(x))

            for y in listaus_settings:
                for _ in range(12):
                    y.append('')

            print("koti"+str(rows))
            data = []
            low = 0
            high = self.total_col_headings - 1
        # Using database column range for populating the TextInput widgets with values from the row clicked/pressed.
            self.data_items_koti = []
            for row in listaus_settings:
                for col in row:
                    data.append([col, row[0], [low, high]])
                low += self.total_col_headings
                high += self.total_col_headings
        # create data_items
            self.data_items_koti = [{'text': str(x[0]), 'Index': str(x[1])} for x in data]

page.kv

<PoytakirjaScreen>:
    name: "Poytakirja"
    on_enter:
        root.get_jengit()
        root.get_players_koti(self.kotinippu1)
        root.get_players_vieras(self.vierasnippu1)


    BoxLayout:
        orientation: 'vertical'
        spacing: 10

        GridLayout:
            padding: [100,0,200,0]
            size_hint: 1, None
            size_hint_y: None
            height: 50
            cols: 6
            Label:
                text: "Sarja:"
                size_hint_x: 0.1
            TextInput:
                id: sarja
                size_hint: (.35, None)
                height: 30
                multiline: False
                write_tab: False
            Label:
                text: "Ott.nr:"
                size_hint_x: 0.1
            TextInput:
                id: ottnro
                size_hint: (.1, None)
                height: 30
                multiline: False
                write_tab: False
            Label:
                text: "Alkoi:"
                size_hint_x: 0.1
            TextInput:
                id: alkuaika
                size_hint: (.1, None)
                height: 30
                multiline: False
                write_tab: False
            Label:
                text: "Paikka ja pvm"
                size_hint_x: 0.1
            TextInput:
                id: paikkapvm
                size_hint: (.30, None)
                height: 30
                multiline: False
                write_tab: False
            Label:
                text: "Yleiso:"
                size_hint_x: 0.1
            TextInput:
                id: yleiso
                size_hint: (.1, None)
                height: 30
                multiline: False
                write_tab: False
            Label:
                text: "Paattyi:"
                size_hint_x: 0.1
            TextInput:
                id: paattymisaika
                size_hint: (.1, None)
                height: 30
                multiline: False
                write_tab: False

        GridLayout:
            size_hint: 1, None
            size_hint_y: None
            height: 50
            cols: 1
            Label:
                text: "Vieras"

        GridLayout:
            size_hint: 1, None
            size_hint_y: None
            height: 20
            cols: 14
            Label:
                text: "Pelaajanumero"
            Label:
                text: "Nimi"
            Label:
                text: "Maali"
            Label:
                text: "Maalintekija"
            Label:
                text: "Syottaja 1"
            Label:
                text: "Syottaja 2"
            Label:
                text: "Pelaajanumero"
            Label:
                text: "Nimi"
            Label:
                text: "Maali"
            Label:
                text: "Maalintekija"
            Label:
                text: "Syottaja 1"
            Label:
                text: "Syottaja 2"
            Label:
                text: "Syottaja 1"
            Label:
                text: "Syottaja 2"



        GridLayout:
            cols: 1
            RecycleView:
                viewclass: 'TextInput'
                data: root.data_items_vieras
                RecycleGridLayout:
                    cols: 14
                    default_size: None, dp(26)
                    default_size_hint: 0.1, None
                    size_hint_y: None
                    height: self.minimum_height
                    multiselect: True
                    touch_multiselect: True


        GridLayout:
            size_hint: 1, None
            size_hint_y: None
            height: 50
            cols: 1
            Label:
                text: "Koti"

        GridLayout:
            size_hint: 1, None
            size_hint_y: None
            height: 20
            cols: 6
            Label:
                text: "Pelaajanumero"
            Label:
                text: "Nimi"
            Label:
                text: "Maali"
            Label:
                text: "Maalintekija"
            Label:
                text: "Syottaja 1"
            Label:
                text: "Syottaja 2"

        GridLayout:
            cols: 1
            RecycleView:
                viewclass: 'TextInput'
                data: root.data_items_koti
                RecycleGridLayout:
                    cols: 14
                    default_size: None, dp(26)
                    default_size_hint: 0.1, None
                    size_hint_y: None
                    height: self.minimum_height
                    multiselect: True
                    touch_multiselect: True

是否可以在RecycleView中添加这些没有任何数据的空文本输入,或者我必须使用其他方法?基本上,我只是尝试从SQLite中获取数字和名称信息,并在其自己的行中显示连接的数字和名称,然后在空白字段中填写。有没有可能真正获得信息,就像它只是一个普通的文本输入,这样我就可以进行查询,将字段中的信息添加到数据库中

Example

Example2


Tags: textselfnoneidfalsefordatasize