2017-03-12 38 views
0

變量我是比較新的編碼(這只是我曾經寫的第二件事),並創下了路障。任何建議,即使這只是一個基本的想法,已經迴避我會有所幫助。使用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()'變量放置一個空白空間。在我的最後一個節目我建了一個「高清」功能到一個按鈕,也可用於許多「獲得()」命令和它完美的作品,所以我不知道爲什麼會這樣。按下「提交」按鈕目前似乎沒有做任何事情。

謝謝大家的幫助!

回答

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

這就要求commit_to_database()現在,並使用它的返回值(這是無)作爲按鈕的command選項的值。你想離開關(),本身傳遞給函數的命令(就像您創建的其他按鈕)。

+0

太謝謝你了!這是一個有點尷尬錯過了這樣一個細節,但我想這是作爲一個初學者的一部分。 –