Я писал приложение, которое имело одно окно и функции для доступа к базе данных sqlite3. Затем я изменил структуру приложения, чтобы использовать разные фреймы.
Когда я сделал это, код для доступа к базе данных и получения из нее данных больше не работает. Я знаю, что упускаю что-то глупое, но не вижу, что я делаю не так. Любая помощь будет оценена:
class ResultsPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
#set logo image at the top of the page
my_logo=Image.open('Picture4.png')
render = ImageTk.PhotoImage(my_logo)
logo=Label(self, image = render)
logo.image=render
logo.grid(row=0, column=1, columnspan=5, pady = 10 , padx=10)
my_label=Label(self, text="Results Output File", font=HEADING_FONT)
my_label.grid(row=0, column=6, columnspan=30, padx=20, pady=20, sticky=W)
separator=ttk.Separator(self, orient='horizontal')
separator.grid(row=2, column = 1, sticky=EW, columnspan=20)
#create the link to the database
conn = sqlite3.connect('wkdatabase.db')
#create the cursor
c = conn.cursor()
c.execute("SELECT * FROM kappadata")
items=c.fetchall()
#print (items)
# or can do... and can concantenate "\t" tabs things
rowc = 10
for item in items:
my_label=tk.Label(self, text="Survey Title = %s" % item[0], font= ("Helvetica", 10))
my_label.grid(row=int(rowc), column=0, columnspan=15,padx=20, sticky=W)
rowc=rowc+1
my_label=tk.Label(self, text="Question Number: %s" % item[1], font= ("Helvetica", 10))
my_label.grid(row=int(rowc), column=0, columnspan=15,padx=20, sticky=W)
rowc=rowc+1
my_label=tk.Label(self, text="Question Text: %s" % item[2], font= ("Helvetica", 10))
my_label.grid(row=int(rowc), column=0, columnspan=15,padx=20, sticky=W)
rowc=rowc+1
my_label=tk.Label(self, text="Observed Values array: " + str(item[3][1:-1]), font= ("Helvetica", 10))
my_label.grid(row=int(rowc), column=0, columnspan=15,padx=20, sticky=W)
rowc=rowc+1
my_label=tk.Label(self, text="Weights used: " + str(item[4][1:-1]), font= ("Helvetica", 10))
my_label.grid(row=int(rowc), column=0, columnspan=15,padx=20, sticky=W)
rowc=rowc+1
my_label=tk.Label(self, text="Expected Values array: " + str(item[5][1:-1]), font= ("Helvetica", 10))
my_label.grid(row=int(rowc), column=0, columnspan=15,padx=20, sticky=W)
rowc=rowc+1
my_label=tk.Label(self, text="Weighted-Kappa Result: %s" % item[6], font= ("Helvetica", 10))
my_label.grid(row=int(rowc), column=0, columnspan=15,padx=20, sticky=W)
rowc=rowc+1
separator=ttk.Separator(self, orient='horizontal')
separator.grid(row=int(rowc), column = 1, sticky=EW, columnspan=20)
rowc=rowc+1
#commit the command
conn.commit()
#close the connection
conn.close()