Передача значений между кадрами в Tkinter и sqlite3 - PullRequest
0 голосов
/ 19 апреля 2020

Я писал приложение, которое имело одно окно и функции для доступа к базе данных 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()
...