作为我正在制作的库存系统的一部分,我希望Tkinter通过用户输入输入框并单击“添加库存”按钮来收集希望插入数据库的数据值。

我的问题是,我不确定如何将sqlite3与Tkinter代码结合使用。

以下是我的“添加库存”窗口的Tkinter代码

def addStock():
    root = Tk()
    root.title('Add Stock')
    label1 = Label(root, text='Gender')
    label2 = Label(root, text='Price')
    label3 = Label(root, text='Enter Product Name')
    label4 = Label(root, text='Colour')
    label5 = Label(root, text='Size')
    label6 = Label(root, text='Enter Amount')
    label7 = Label(root, text='Source')
    label8 = Label(root, text='Enter ProductID')
    entry1 = Entry(root)
    entry2 = Entry(root)
    entry3 = Entry(root)
    entry4 = Entry(root)
    entry5 = Entry(root)
    entry6 = Entry(root)
    entry7 = Entry(root)
    entry8 = Entry(root)

    label1.grid(row=0, sticky=E)
    label2.grid(row=1, sticky=E)
    label3.grid(row=2, sticky=E)
    label4.grid(row=3, sticky=E)
    label5.grid(row=4, sticky=E)
    label6.grid(row=5, sticky=E)
    label7.grid(row=6, sticky=E)
    label8.grid(row=7, sticky=E)

    entry1.grid(row=0, column=1)
    entry2.grid(row=1, column=1)
    entry3.grid(row=2, column=1)
    entry4.grid(row=3, column=1)
    entry5.grid(row=4, column=1)
    entry6.grid(row=5, column=1)
    entry7.grid(row=6, column=1)
    entry8.grid(row=7, column=1)

    frame3 = Frame(root)
    frame3.grid(columnspan = 2)

    button1 = Button(frame3, padx=10, pady=10, bd=2, text="Add Stock", command=insert_data)
    button1.grid()

以下是我希望与Tkinter代码链接的sqlite3的insert语句。

def insert_data(values): 
    with sqlite3.connect("jam_stock.db") as db:
        cursor = db.cursor()
        sql = "insert or ignore into Product (Name, ProductID) values (?,?)"
        query(sql,values)
        db.commit()

def insert_product_type_data(records): #normalised
    sql = "insert into ProductType(AmountInStock, Size, Colour, Source) values (?,?,?,?)"
    for record in records:
        cursor.execute(sql,record)

def insert_product_gender_data(records): #normalised
    sql = "insert into ProductGender(Gender, Price) values (?,?)"
    for record in records:
        cursor.execute(sql, records)

我已经定义了子例程中引用的表,但是我正在努力寻找一种通过Tkinter将数据插入到这些表中的方法。

我正在为那些想知道的人运行Python 3.4。 帮助将不胜感激。

===============>>#1 票数:1

解决此问题的通常方法是让您的按钮调用专门用于该按钮的功能。 该功能的职责是从GUI收集数据,调用使用该数据的某些功能,然后将所有结果发布回GUI。

例如:

...
button1 = Button(... text="Add Stock", command=_on_add_stock)
...

def _on_add_stock():
    gender = entry1.get()
    price = entry2.get()
    ...
    insert_data(gender, price, ...)

上面的代码不适用于您发布的代码,但是它提供了大致的思路。 它与您发布的代码不兼容的原因之一是因为entry1等都是局部变量。 您应该使用一种更加面向对象的方法,因此这些变量都是类的属性。 您可以看到有关构建tkinter应用程序的最佳方法的答案的示例。

===============>>#2 票数:0

一种技巧是在按钮中使用“ command ”。 如以上注释中所列,请尝试使用方法:

def _add_to_db:get_data = entry.get()#这应该是Entry insert的文本= *一些用于将数据插入数据库的代码,以\\ n的顺序将get_data出现在数据库中*

btn = Button(root, text="Place in DB", command=_add_to_db).pack()

  ask by Ted translate from so

未解决问题?本站智能推荐:

1回复

将tkinter输出保存到sqlite3数据库

我对编程还很陌生,我正在尝试将tkinter输入框的输入保存到sqlite数据库中的字段中。 但是,无论如何,我总是将其保存为PY_VAR(number)的变体,或仅打印为{}。 这是代码的相关部分(SQL查询在数据库上下文中均有效)。 我将如何纠正此问题,以便将输入条目保存到SQL数据库
1回复

将Tkinter Entry数据保存到SQL中时出错

这个想法是一个程序,用于图书馆添加有关借书的信息。 我有一些Tkinter条目及其变量 它工作正常,但是,当我要将它们保存到SQLdb时,错误信息就会出现。 使用SQLITE3 该错误是在guardar cs.execute(save,)OperationalError中发生
1回复

从Tkinter Frame更新sqlite3 dababase

我正在尝试使用此功能更新sqlite3数据库,但似乎无法正确传递参数。 通过在tkinter框架中手动进行的选择来拾取人。
1回复

Tkinter输入未插入数据库(sqlite3)

当我在tkinter上单击Add时,它不会在数据库中添加任何内容,我不知道sqlite3很多。 我的数据库文件: Python档案: 当单击tkinter上的添加按钮时,它给了我空白的输出,这意味着它没有在数据库中插入任何内容
1回复

将tkinter上的条目保存到sqlite3

在此先感谢您的帮助! 我一直在网上寻找解决方案,并且一直在努力寻找解决方案。 我试图将一些数据从tkinter上的输入文本框中保存到SQLite3中的表中,但是无论我尝试什么,每次都遇到相同的错误。 下面的代码。 请注意,几天前我才开始从youtube视频中学习编码。 道歉,如
1回复

Python sqlite3,tkinter显示多行

我是python的新手,最近我使用带tkinter的Python和Sqlite3制作字典。 当我运行代码时,它在IDLE中返回多行,但在GUI中它仅显示最后一个结果。 我想在GUI中显示所有信息。 感谢您的帮助和建议。
1回复

使用tkinter + sqlite3时出错

我正在尝试在gui(Tkinter)中使用sqlite3,当我尝试使用geany编译代码时,它会返回此错误 我该如何解决? 谢谢 光与和平!
1回复

将tkinter条目数据提交到sqlite3 db

在这里完成菜鸟操作,我正在尝试将一组tkinter输入框中的数据提交给sqlite3。 当我运行代码时,窗体正确显示并创建了表,但是数据没有提交到数据库。 我收到一条错误消息,指出未定义“ submit_record”(连接到提交按钮的函数)。 我已经尝试了所有我知道的或可以在网上找到的东
1回复

Sqlite3从tkinter框中删除搜索记录

我目前正在编写一个具有帐户系统的程序。 删除帐户时,用户将搜索记录详细信息,如果成功,则将在屏幕上的框中显示该详细信息。 我的问题是我找不到删除搜索记录的解决方案。 这是我当前的代码: 谢谢你的帮助。
1回复

如何在Tkinter TreeView中输出sqlite3数据

上午有有在我的所有记录如何输出问题sqlite3分贝到tkinter treeview 。它仅输出在最后一个记录db ,并记录不会出现在对后援指定的列print方法印刷的所有db记录我的终端,但不会将所有记录输出到treeview小部件。 欢迎您提出建议以实现这一目标