Чтобы получить текст из виджета Entry
, используйте метод get()
(он возвращает строку в текстовом поле).
name_box = Entry()
name_box.pack(side=RIGHT, expand=True)
person_name = name_box.get()
Однако вам потребуется добавить кнопку, как говорит @abarnert в комментариях. Прикрепите к нему эту функцию:
def get_name():
global person_name
person_name = name_box.get()
data = c.fetchall()
print(data)
for row in data:
searchlist.append(row)
var1=str(person_name)
read_from_db(var1)
(Конечно, измените read_from_db()
, чтобы он принимал переменную следующим образом:
def read_from_db(var):
curs.execute("SELECT *" + " FROM personal WHERE Name LIKE (?)", ('%'+var+'%',))
)
Пример кода кнопки может выглядеть так:
button = Button(top, text="Display text", command=get_name)
Соедините все вместе:
import sqlite3
conn = sqlite3.connect('new_assignment.db')
c = conn.cursor()
from tkinter import *
top = Tk()
top.title('Search form')
name_box = Entry()
name_box.pack(side = RIGHT, expand = True)
def get_name():
global person_name
person_name = name_box.get()
data = c.fetchall()
print(data)
for row in data:
searchlist.append(row)
var1=str(person_name)
read_from_db(var1)
def read_from_db(var):
curs.execute("SELECT *" + " FROM personal WHERE Name LIKE (?)", ('%'+var+'%',))
person_name = ""
button = Button(top, text="Display text", command=get_name)
button.pack()
mainloop()
person
lyxal
schedule
17.03.2018
person_name
, что вы можете сделать, запросивEntry
его текст или используя TkStringVar
, как рекомендовано в главе Tkinter Book оEntry
. В более общем смысле, если вы прочитали соответствующую часть Книги и все еще застряли, у вас должен быть более конкретный вопрос, который подходит сюда. - person abarnert   schedule 17.03.2018