(kivy) Как я могу сделать это, не используя пустые данные в RecycleView? - PullRequest
1 голос
/ 05 апреля 2020

У меня проблема, когда я пытаюсь отобразить только две колонки информации из моей базы данных, а остальные должны быть только пустыми TextInputs. На данный момент программа выглядит так, как показано на картинках ниже. Я пытаюсь получить тот же результат, что и на рисунке, но сейчас пустые поля сделаны с использованием «пустых» данных.

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

Возможно ли добавить эти пустые TextInputs без каких-либо данных в RecycleView, или мне нужно использовать какой-то другой метод? По сути, я просто пытаюсь получить информацию о номере и имени из SQLite и отобразить подключенный номер и имя в отдельной строке, а после этого есть пустые поля, которые вы можете заполнить самостоятельно. И возможно ли на самом деле получить информацию, как если бы это был обычный TextInput, чтобы я мог сделать запрос, в котором я добавил информацию, размещенную в полях, в базу данных?

Пример

Пример 2

...