我正在使用Python 3.x,我正在尝试获取数据集记录并在额外的窗口中显示它们。我是一个血腥的初学者,目前我没有看到我的错误。我检查了多个线程,但没有得到解决方案。调试也没有帮助我。
这是我的方法:
import sqlite3
from tkinter import *
class Overview():
def __init__(self,master):
self.master = master
self.master.geometry('170x110+100+200')
self.master.title('Welcome!')
self.button1 = Button(self.master, text="Show dataset", fg='green', command=self.gotoMenu).grid(
row=1, column=1)
def gotoMenu(self):
# This is the Dataset GUI#
root2 = Toplevel(self.master)
myGUI = Menu(root2)
def main():
root = Tk()
overviewGUI = Overview(root)
root.mainloop()
if __name__ == '__main__':
main()
class Menu:
def __init__(self,master):
# This is the Dataset GUI#
self.connection = sqlite3.connect('test.db')
print("Opened database successfully")
self.cur = self.connection.cursor()
self.master = master
self.master.title('Dataset')
self.master.geometry("320x240")
print("GUI created")
self.dateLabel = Label(self.master, text="Date", width=10)
self.dateLabel.grid(row=0, column=0)
self.BMILabel = Label(self.master, text="Name", width=10)
self.BMILabel.grid(row=0, column=1)
self.stateLabel = Label(self.master, text="ID", width=10)
self.stateLabel.grid(row=0, column=2)
self.insertDS('random')
self.showallrecords()
def showallrecords(self):
data = self.readfromdatabase()
for index, dat in enumerate(data):
Label(self.master, text=dat[2]).grid(row=index + 1, column=0)
Label(self.master, text=dat[1]).grid(row=index + 1, column=1)
Label(self.master, text=dat[0]).grid(row=index + 1, column=2)
def readfromdatabase(self):
self.cur.execute("SELECT * FROM LOGGING")
return self.cur.fetchall()
def createTable(self):
try:
self.connection.execute(
"CREATE TABLE LOGGING(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT NOT NULL, TIMESTAMP DATE DEFAULT (datetime('now','localtime')));")
print("Table created successfully")
except:
print("Table already exists")
def insertDS(self, name):
self.connection.execute("INSERT INTO LOGGING (NAME) \
VALUES (?);", [name])
self.connection.commit()
print("Records created successfully")
我的应用程序应从“概述”GUI开始,单击按钮我想从“菜单”类中查看所有提取的数据集。
但是,点击按钮后,下一个窗口为空,标题为“欢迎”,应为“数据集”
更新
我没有收到任何错误,但是我的获取结果不会显示在第二个窗口中,并且标题不是self.master.title('Dataset')
在课程Menu
中初始化的。
我觉得这只是创建一些空窗口,甚至没有查看我的Menu
类?
解决方案:
python className not defined NameError
以某种方式(无法解释原因)当我使用def移动'名称'块时(尽管缩进是正确的)它起作用了。
答案 0 :(得分:0)
您已重载菜单,请使用其他名称更改您的班级名称。 并且不要使用import *