나는 단순히 SQLite3
데이터베이스에 텍스트 데이터 및 정수 데이터 를 저장하는 작은 프로그램을 코딩하고에 데이터를 저장하도록 노력. 나는 그것을 실행할 때이 cur.execute
라인 매개 변수로 문자열을 요구하는 나를 을 알려줍니다,하지만 난 이미로 text1
을 정의Tkinter를 응용 프로그램이 sqlite3를 데이터베이스
con = sqlite3.connect('test.db')
cur = con.cursor()
cur.execute('drop table if exists data')
cur.execute('create table data(t1 TEXT, i1 INT)')
con.commit()
print('DB created')
문제는 다음과 같습니다
내가 DB를 생성 한 다음 코드와 test.db
라고 문자열은 StringVar
입니다. StringVar
및 IntVar
전형적인 파이썬 객체 str
및 int
이되지 않기 때문에
from tkinter import *
from tkinter import ttk
import sqlite3
def savedata(text1, int1):
con = sqlite3.connect('test.db')
cur = con.cursor()
cur.execute(('INSERT INTO data (t1, i1) VALUES (?,?)', (text1, int1)))
con.commit()
print('record inserted in data')
root = Tk()
root.title("Little Program To Save Data")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column = 0, row = 0, sticky = (N,W,E,S))
mainframe.columnconfigure(0, weight = 1)
mainframe.rowconfigure(0, weight = 1)
text1 = StringVar()
text_entry = ttk.Entry(mainframe, width = 20, textvariable=text1)
text_entry.grid(column = 2, row = 1, sticky = (N,W,E,S))
int1 = IntVar()
int_entry = ttk.Entry(mainframe, width = 20, textvariable=int1)
int_entry.grid(column = 2, row = 2, sticky = (N,W,E,S))
ttk.Button(mainframe, text = "Save!", command=savedata(text1, int1)).grid(column = 3, row = 3, sticky = (W, E))
for child in mainframe.winfo_children():
child.grid_configure(padx = 5, pady = 5)
root.mainloop()
감사합니다! mmgp 잘 설명하고 다시 mmgp, 한 번 더 질문을 – Sylvain
안녕을 보여 주었다. – Sylvain
@Sylvain은 어디? – mmgp