Я использовал следующее для создания страницы (фрейма) с виджетом текстового поля 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