我不明白为什么我的条目小部件不接受任何输入

问题描述 投票:0回答:1

我尝试了一切,但我的输入框还没有准备好接受任何输入

请帮助我 代码如下:

首先安装 ttkbootstrap 来执行代码。

pip install ttkbootstrap

请尽快发送答案

import tkinter as tk
from tkinter import messagebox as mgb
from ttkbootstrap import *
import sqlite3 as sql

conn = sql.connect("Stock Data.db")
cursor = conn.cursor()

def AddData(Date, Quality, Quantity, Invoice, Supplier):
    cursor.execute(f'''INSERT INTO Stock (Date, Quality, Quantity, Invoice, Supplier) VALUES ('{Date}','{Quality}',{Quantity},{Invoice},'{Supplier}'));''')
def SortData():
    pass
def ResetAdd():
    Date.set("Date")
    Quality.set("Quality")
    Quantity.set("Quantity")
    Invoice.set("Invoice Number")
    Supplier.set("Supplier")
def ResetSort():
    pass

frame = Window("Stock Book", themename="superhero")

if mgb.askquestion("First Time", "Is this app opened for the FIRST TIME?") == "yes":
    cursor.execute('DROP TABLE IF EXISTS Stock')
    cursor.execute(''' CREATE TABLE Stock
            (Date TEXT,
            Quality TEXT,
            Quantity INT,
            Invoice INT,
            Supplier TEXT);''')

root = Frame(frame, padding=10)
root.pack(pady=5, fill=X, side=TOP)

nb = Notebook(root)
nb.pack(side=LEFT, padx=(10, 0), expand=YES, fill=BOTH)

AddDataFrame = Frame(nb, padding=15)
AddDataFrame.pack(fill=BOTH, pady=(10, 5), expand=YES)
Date = StringVar(AddDataFrame)  
DatEntry = Entry(AddDataFrame, width=50, textvariable=Date) #Date
DatEntry.pack(fill=X, pady=5)
Quality = StringVar(AddDataFrame)
QualityEntry = Entry(AddDataFrame, textvariable=Quality) #Quality
QualityEntry.pack(fill=X, pady=5)
Quantity = StringVar(AddDataFrame)
QuantityEntry = Entry(AddDataFrame, textvariable=Quantity) #Quantity
QuantityEntry.pack(fill=X, pady=5)
Invoice = StringVar(AddDataFrame)
InvoiceNumberEntry = Entry(AddDataFrame, textvariable=Invoice) #Invoice SupplierNumber
InvoiceNumberEntry.pack(fill=X, pady=5)
Supplier = StringVar(AddDataFrame)
SupplierEntry = Entry(AddDataFrame, textvariable=Supplier) #Supplier
SupplierEntry.pack(fill=X, pady=5)
ResetButton = Button(AddDataFrame, text="RESET", style="Danger.TButton", width=22, command=ResetAdd) #Reset
ResetButton.pack(pady=10, side = LEFT)
SaveButton = Button(AddDataFrame, text="ADD DATA", style="Success.TButton", width=22, command=lambda:AddData(
    Date.get(),
    Quality.get(),
    Quantity.get(),
    Invoice.get(),
    Supplier.get()
)) #Save
SaveButton.pack(pady=10, side = RIGHT)

SortDataFrame = Frame(nb, padding=15)
SortDataFrame.pack(fill=BOTH, pady=(10, 5), expand=YES)
SorterEntry = Entry(SortDataFrame, width=50) #Sorter
SorterEntry.pack(fill=X, pady=5)
SorterEntry.insert(END, "Sorter")
SortererEntry = Entry(SortDataFrame) #Quality
SortererEntry.pack(fill=X, pady=5)
SortererEntry.insert(END, "Value")
ResetButton = Button(SortDataFrame, text="RESET", style="Danger.TButton", width=22, command=ResetSort) #Reset
ResetButton.pack(pady=10, side = LEFT)
SortButton = Button(SortDataFrame, text="SORT", style="Success.TButton", width=22, command=SortData) #Sort
SortButton.pack(pady=10, side = RIGHT)

nb.add(AddDataFrame, text="Add Data", sticky=NW)
nb.add(SortDataFrame, text="Sort Data", sticky=NW)

tk.mainloop()

我尝试了阅读文档,更改代码,重新运行代码100次,重新启动我的笔记本电脑,一切,但它不接受任何输入。请更新我的,我必须尽快完成这个项目。 😍😍

python debugging tkinter tkinter-entry ttkbootstrap
1个回答
0
投票

我也有同样的错误。添加

trace_add
对我有用。

import tkinter as tk

root = tk.Tk()


def my_callback(var, index, mode):
    print(name.get())


name = tk.StringVar()
name.set("default name")
name.trace_add('write', my_callback)

entry_field = tk.Entry(root, textvariable=name)
entry_field.pack()

root.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.