如何解决无法显示从sqlite到tkinter条目小部件的查询数据
所以我有这个问题。这个小项目背后的想法是,我想从SQLite数据库中添加几列,并根据用户在主GUI中单击哪些复选框(这些复选框是月份和年份),将这些结果显示在输入框中,我可以使输入框显示某些内容,但这不是我想要的,而是在框中显示以下消息:
import sys
import sqlite3
from tkinter import *
from tkinter import ttk
# Creates an entry widget
incomeentry = Entry(root) #
incomeentry.place(relx=0.89,rely =0.01,relheight=0.035,relwidth=0.1,bordermode='ignore')
#Sets check boxes either to int or to str
state5 = IntVar()
state6 = IntVar()
state7 = StringVar()
state8 = StringVar()
# Creates 4 check buttons (2 for years and 2 for months)
TCheckbutton1 = Checkbutton(root,variable=state5,onvalue=2019,offvalue=0)
TCheckbutton1.place(relx=0.62,rely=0.01,relwidth=0.03,relheight=0.0,height=21)
TCheckbutton1.configure(text='''2019''')
TCheckbutton2 = Checkbutton(root,variable=state6,onvalue=2020,offvalue=0)
TCheckbutton2.place(relx=0.62,rely=0.03,height=21)
TCheckbutton2.configure(text='''2020''')
TCheckbutton3 = Checkbutton(root,variable=state7,onvalue='January',offvalue=0)
TCheckbutton3.place(relx=0.62,rely=0.05,height=21)
TCheckbutton3.configure(text='''January''')
TCheckbutton4 = Checkbutton(root,variable=state8,onvalue='February',offvalue=0)
TCheckbutton4.place(relx=0.62,rely=0.07,height=21)
TCheckbutton4.configure(text='''February'')
#Tries to connect to the database,queries data from the SQLite and inserts it into Tkinter entry box
def Choose():
conn = sqlite3.connect("taxes.db")
c = conn.cursor()
connect = c.execute("SELECT SUM(moneyback + woocomerce + deliveries) FROM income WHERE month = ? and year = ? ",(state7.get(),state6.get()))
incomeentry.insert(0,connect)
conn.close()
# Creates a button that executes the 'Choose' function
TButton1 = Button(root,command=Choose)
TButton1.place(relx=0.54,rely=0.007,relwidth=0.075,relheight=0.00,height=50)
TButton1.configure(text='''Choose''')
因此,总的来说,我希望根据用户单击的年份和月份从3列中得出我的总金额,以显示在空白输入框中。
解决方法
您的代码...
connect = c.execute("SELECT SUM(moneyback + woocomerce + deliveries) FROM income WHERE month = ? and year = ? ",(state7.get(),state6.get()))
...将执行在数据库中搜索良好结果的操作,如果要将结果保存为变量,则必须使用fetchall()
或fetchone()
或{{1} }方法。
类似,
fetchmany()
或
results = connect.fetchall() #to fetch all the data
请注意,results = connect.fetchone() #to fetch one of the data
将是获取的数据元组的列表。
现在您可以说出来
result
Here is some documentation on sqlite and python
Some documentation on checkbuttons
如果有任何疑问或错误,请告诉我
欢呼
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。