Необходимо подключить базу данных sqlite для заполнения виджета текстового поля tkinter - PullRequest
0 голосов
/ 21 апреля 2020

Я использовал следующее для создания страницы (фрейма) с виджетом текстового поля tkinter.

class ResultsPage(Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.scrollbar = tk.Scrollbar(self)
        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.textbox = Text(self, wrap=tk.WORD)
        self.textbox.pack(expand=True)
        for i in range(30):
            self.textbox.insert(END, f"This is an example line {i}\n")
        self.textbox.config(relief=FLAT, yscrollcommand=self.scrollbar.set)
        self.scrollbar.config(command=self.textbox.yview)

Вместо того, чтобы заполнять текстовое поле множеством «Это пример», я буду sh заполнить его записями из базы данных sqlite3. Я использовал приведенный ниже код, прежде чем добавить текстовое поле, и оно работало хорошо, но мне нужно было иметь полосу прокрутки, следовательно, добавить виджет текстового поля. Как я могу изменить следующий (и выше) код, чтобы позволить мне вставлять записи из базы данных в текстовое поле? Ваш опыт будет оценен.

conn = sqlite3.connect('wkdatabase.db')
c = conn.cursor()
c.execute("SELECT * FROM kappadata")
items=c.fetchall()
conn.commit()
conn.close()

rowc=10
for item in items:
    my_label=tk.Label(self, text="Survey Title = %s" % item[0])
    my_label.grid(row=int(rowc), column=0, padx = 20, columnspan = 20, sticky = W)
    rowc=rowc+1

my_label=tk.Label(self, text="Question Number:  %s" % item[1])
my_label.grid(row=int(rowc), column=0, padx = 20, columnspan = 20, sticky = W)
rowc=rowc+1
...