如何使Entry值不是Mysql query = Tkinter的字符串变量

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

该查询似乎有效,但“选定条目”变成了一串数字,这会扰乱我的查询。

def find_roster(n=""):
 global cursor
cursor.execute("""SELECT num, firstname, surname, assign FROM active WHERE num='%s'"""%(n))
rows = cursor.fetchall()
for results in rows:
    rosterList.insert("end", results)
cursor.close()
print(n)
print(rows)
return rows

numLabel=Label(root, text="Employee #")
numLabel.grid(row=0,column=0)

findButt=Button(root, text="Find", width=12, command=find_roster)
findButt.grid(row=1, column=5)


num_input=StringVar()
num_input=Entry(root,textvariable=num_input)
num_input.grid(row=0,column=1)

-----


findButt=Button(root, text="Find", width=12, command=lambda: find_roster(num_input))
findButt.grid(row=1, column=5)

控制台打印结果

.140526443864584

()#QUERY RESULT

需要是

1-214

(1-214, JOE,HOEY,OFF)   #QUERY RESULT
python mysql tkinter
1个回答
1
投票

请注意:

num_input=StringVar()
num_input=Entry(root,textvariable=num_input)

这与以下内容非常相似:

a = 3
a = -4

但进一步补充:

a = 3
a = -4
print(a)

您认为这会打印出什么?


更换:

num_input=StringVar()
num_input=Entry(root,textvariable=num_input)

有:

anything_but = StringVar()
num_input = Entry(root, textvariable=anything_but)

因为你稍后将整个Entry小部件分配为num_input所以它会被覆盖。另外要将其内容作为字符串,您必须使用get方法:

findButt=Button(root, text="Find", width=12,
                   command=lambda arg=anything_but.get(): find_roster(arg))
© www.soinside.com 2019 - 2024. All rights reserved.