我有这样的数据库:
import tkinter as tk
LARGE_FONT= ("Verdana", 12)
NORM_FONT= ("Verdana", 10)
SMALL_FONT= ("Verdana", 8)
class mGui(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
container.grid()
self.shared_data = {"filename": tk.StringVar('')}
self.frames = {}
for PageFrame in (StartPage, PageOne):
frame = PageFrame(container, self)
self.frames[PageFrame] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
self.controller = controller
tk.Frame.__init__(self, parent)
label_1 = tk.Label(self, text="Start Page", font=LARGE_FONT)
label_1.grid(row=0, column=0)
entry1 = tk.Entry(self, textvariable=self.controller.shared_data["filename"])
entry1.grid(row=1, column=0)
button1 = tk.Button(self, text="Go", command=lambda: self.controller.show_frame(PageOne))
button1.grid(row=2, column = 0)
class PageOne(tk.Frame):
def __init__(self, parent, controller):
self.controller = controller
tk.Frame.__init__(self, parent)
label_1 = tk.Label(self, text="Page One", font=LARGE_FONT)
label_1.grid(row = 1, column = 4)
filename = self.controller.shared_data["filename"]
label_2 = tk.Label(self, textvariable=filename, font=LARGE_FONT)
label_2.grid(row = 2, column = 0)
button1 = tk.Button(self, text="Go Back", command=lambda: self.controller.show_frame(StartPage))
button1.grid(row=4, column=1)
app = mGui()
app.mainloop()
我需要一一向用户显示DB(类型1)的所有行。
这意味着用户可以在应用程序内部看到在row0(id = 0)内部显示的所有信息,用户可以更改文本。
然后,用户单击按钮“下一步”,以便用户看到id = 2的所有信息,依此类推。 问题是,我无法返回包含类型1的所有行的类型1的游标,并无法使用此类游标填充视图-如果用户更改文本游标不会被更新,并且在用户按下“下一步”按钮之后用户会返回“返回”看到旧文本。
我应该如何解决这个问题?
我想我需要在DBHelper类中进行一些功能,该类返回仅包含一行(id = 0)的游标,当第二次调用此函数时,应返回包含id = 2的行,第三次返回id的行= 5,依此类推。 我该如何解决这个问题?