如果条目具有一定长度,则将条目添加到列表框

2024-04-25 17:06:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python/tkinter新手。在我的实验室里,我们使用条形码扫描仪将样本号扫描到数据库中。我只希望能够创建一个条目小部件,它能够检测给定文本的长度,如果是该长度,则将其添加到列表框中。这是我的密码:

from tkinter import *


def my_tracer(arg1, arg2, arg3):
    SampleNumber = len(e1_var.get())
    t_var.set(SampleNumber)
    if t_var == 8:
        Listbox.insert(END, t_var)


root = Tk()
root.geometry("200x200")

SampleList = Listbox(root, selectmode=EXTENDED)
SampleList.pack()

t_var = StringVar()

e1_var = StringVar()
e1_var.trace("w", my_tracer)

e1 = Entry(root, textvariable=e1_var)
e1.pack()

root.mainloop()

我没有出错,但什么也没发生

我确信这里有一些基本的东西我遗漏了

提前谢谢


1条回答
网友
1楼 · 发布于 2024-04-25 17:06:57

以下代码错误:

if t_var == 8:
    Listbox.insert(END, t_var)

应该是:

if SampleNumber == 8:
    SampleList.insert(END, e_var.get())

以下是基于您的更新代码:

from tkinter import *

def my_tracer(*args):
    txt = e1_var.get().strip()
    if len(txt) == 8:
        SampleList.insert(END, txt)
        e1_var.set('') # clear the entry for next scan

root = Tk()
root.geometry("200x200")

SampleList = Listbox(root, selectmode=EXTENDED)
SampleList.pack()

e1_var = StringVar()
e1_var.trace("w", my_tracer)

e1 = Entry(root, textvariable=e1_var)
e1.pack()

root.mainloop()

PS:t_var不是必需的,所以我删除了它

相关问题 更多 >

    热门问题