Я создаю пользовательский интерфейс с использованием Python Tkinter и получаю доступ к данным из базы данных SQL. Используя эти данные, я хочу отображать их в пользовательском интерфейсе и отображать каждый индекс с 2-секундной задержкой. Пока что у меня настроен пользовательский интерфейс и задержка времени. Единственная проблема, с которой я сталкиваюсь - это циклический просмотр списка данных, поступающих из базы данных SQL, и получение каждого отдельного индекса из базы данных SQL. Когда я пытаюсь выполнить цикл через него, пользовательский интерфейс остается застрявшим в цикле for, а когда я нажимаю другую кнопку, чтобы выполнить какую-то другую задачу, пользовательский интерфейс зависает и не отвечает. Я пытаюсь найти способ, где мне не нужно использовать эту задержку в цикле for, где я должен установить задержку и цикл for? Кроме того, как запустить цикл for, чтобы отобразить каждый отдельный индекс, а не запускать все сразу?
Работа с Python Tkinter и создание пользовательского интерфейса с его использованием. Также можно получить доступ к данным из базы данных SQL. Я пробовал разные способы реализации временной задержки в цикле for, чтобы каждый индекс данных отображался с задержкой в 2 секунды. Я продолжаю возвращаться к той же самой проблеме, где она застревает в этом застрявшем цикле
def Record(self, counter=0):
conn = sq.connect('brian_UI_test.db') #connects to SQL database
c = conn.cursor()
c.execute("SELECT * FROM TEST")
rows = c.fetchall() # Gets the data from the SQL datatable
unpackTuple(rows) #converts tuples to a list
num = 0
list2 = []
if counter < 5:
list2.append(rows)
for row in list2:
num = num+1
self.Lb.insert(num, row) #insertdata from SQL onto listbox UI
print (counter)
self.after(2000, lambda: self.Record(counter+1))#2seconddelay
c.close()
conn.close()
ожидаемые результаты: дисплей 4.2, ожидание 2 секунды, дисплей 5.6, ожидание 2 секунд, дисплей 6.7, ожидание 2 секунд, дисплей7.8, подождите 2 секунды, дисплей 8.9, подождите 2 секунды, дисплей 10.6
фактические результаты: 4.2, 5.6, 6.7, 7.8, 8.9, 10.6