Tkinter 按钮命令在单击时不起作用



我正在制作一个程序,搜索股票编号列表(列表中的前8位int(,然后在输入框中返回列表中的其余值,但当我单击搜索按钮时,它不会执行其功能。有什么建议吗?(我也是编码新手,有没有地方可以缩短我的代码以提高效率?(

root = Tk()

#lists
car =  [19225735, '611926', '2018', 'Hyundai', 'Sonata', 'White', 'Recon', '$25,000', 
'Sedan',32,123]
#funtion
def search():
x = stockNumber.get() 
if (x == car[0]):
vinNumber.insert(car[1])
make.insert(car[3])
model.insert(car[4])
color.insert(car[5])
status.inset(car[6])
price.insert(car[7])
size.insert(car[8])
mileage.insert(car[9])

#text boxes --------------------------------------------
stockNumber = Entry(root, width=30)
stockNumber.grid(row=0, column=1, padx=20)
vinNumber = Entry(root, width=30)
vinNumber.grid(row=1, column=1, padx=20
year = Entry(root, width=30)
year.grid(row=2, column=1, padx=20)
make = Entry(root, width=30)
make.grid(row=3, column=1, padx=20)
model = Entry(root, width=30)
model.grid(row=4, column=1, padx=20)
color = Entry(root, width=30)
color.grid(row=5, column=1, padx=20)
status = Entry(root, width=30)
status.grid(row=6, column=1, padx=20)
price = Entry(root, width=30)
price.grid(row=7, column=1, padx=20)
size = Entry(root, width=30)
size.grid(row=8, column=1, padx=20)
mileage = Entry(root, width=30)
mileage.grid(row=8, column=1, padx=20)

#button command-------------------------------
enter = Button(root, text = "Search", padx=40, pady=20, command=search)
enter.grid(row=9, column=0)

#labels ------------------------------------------------
snLabel = Label(root, text="Stock Number")
snLabel.grid(row=0, column=0)
vnLabel = Label(root, text="Vin Number")
vnLabel.grid(row=1, column=0)
yearLabel = Label(root, text="Year")
yearLabel.grid(row=2, column=0)
makeLabel = Label(root, text="Make")
makeLabel.grid(row=3, column=0)
modelLabel = Label(root, text="Model")
modelLabel.grid(row=4, column=0)
colorLabel = Label(root, text="Color")
colorLabel.grid(row=5, column=0)
statusLabel = Label(root, text="Status")
statusLabel.grid(row=6, column=0)
sizeLabel = Label(root, text="Size")
sizeLabel.grid(row=7, column=0)
mileLabel = Label(root, text="Mileage")
mileLabel.grid(row=8, column=0)

按钮工作正常,您的功能有问题:

def search():
x = int(stockNumber.get())
if (x == car[0]): 
vinNumber.insert(0,str(car[1]))
make.insert(0,str(car[3]))
model.insert(0,str(car[4]))
color.insert(0,str(car[5]))
status.insert(0,str(car[6]))
price.insert(0,str(car[7]))
size.insert(0,str(car[8]))
mileage.insert(0,str(car[9]))

这就是我修复的:

  1. stockNumber.get((返回一个字符串,将其与一个整数进行比较,如果这样做,它将始终为false->使用int((将其转换为int

  2. .insert也需要一个索引,不仅仅是insert(data),还有insert(index, data)

这里有一个提示!!!

您需要查看数据的每一点,并了解您希望函数提取的数据类型。是的,你想要一个号码!但它是一个";int";,浮子,它是什么???

看看search((的函数。它没有获取数据的唯一原因是,您需要确保函数正在寻找正确类型的数据。由于";库存编号";可能是一个整数,您需要在函数中指定它。

基本了解Python数据类型:

  1. int
  2. 浮子
  3. 字符串

最新更新