使用tkinter条目作为SQLite

时间:2017-03-12 22:36:59

标签: python-3.x tkinter sqlite

我对编码相对较新(这只是我写过的第二件事)并且遇到了障碍。任何建议,即使它只是一个回避我的基本想法也会有所帮助。

我创建的实际表单相当大(将来可能会有多达400个条目小部件)所以我会在这里放置一个较小的版本。

from tkinter import *
import sqlite3
import time
import datetime

master = Tk()
master.wm_title("Form")

Label(master, text="Cage ID", width=25).grid(column=1, row=1)
d1 = Entry(master)
d1.grid(column=2, row=1)
Label(master, text="Status", width=25).grid(column=1, row=2)
d2 = Entry(master)
d2.grid(column=2, row=2)

def commit_to_database():
    conn = sqlite3.connect("SGAF_Application_Database.db")
    c = conn.cursor()
    c.execute("CREATE TABLE IF NOT EXISTS StatusTable(ID BLOB, Status BLOB, Timestamp TEXT)")#table format

    unix = time.time()
    time_data = str(datetime.datetime.fromtimestamp(unix).strftime("%m-%d-%Y %H:%M:%S"))#timestamp generation

    c.execute("INSERT INTO StatusTable(ID, Status, Timestamp) VALUES (?, ?, ?)",
          (d1.get(), d2.get(), time_data))

    conn.commit()

b1 = Button(master, text="Quit", font="bold", fg="black", bg="white", width=15, command=master.quit)
b1.grid(column=3, row=22)

b2 = Button(master, text="Commit", font="bold", fg="black", bg="white", width=15, command=commit_to_database())
b2.grid(column=6, row=22)

mainloop()

基本上这是尝试将提交内置到按钮小部件中,以便我可以访问填充的条目小部件来填充表格。由于现在存在,程序一按下运行程序就将变量输入到表中。由于这些字段在开头时是空的,因此在表格中为“.get()'”添加一个空格。变量。在我的上一个节目中,我建立了一个' def'功能按钮也使用了许多' .get()'命令和它完美的工作,所以我不知道为什么会这样。按"提交"按钮似乎什么都不做。

谢谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

b2 = Button(master, text="Commit", font="bold", fg="black", bg="white", width=15, command=commit_to_database())

这将立即调用commit_to_database(),并使用其返回值(无为)作为按钮的command选项的值。您想要离开(),将函数本身作为命令传递(就像您创建的其他按钮一样)。