Я пытаюсь создать приложение с графическим интерфейсом для напоминаний, в котором пользователь дает описание, дату и время, которые хранятся в базе данных sqlite3. Чтобы напомнить, я написал скрипт, который мы выбираем из базы данных и проверяем с текущей датой и временем (Function-async def main ()). Я хочу сделать функцию асинхронной с графическим интерфейсом и связать ее кнопкой Exit (ttk.Button (newwin, text = 'EXIT', command = Remder_exit)), которая также будет выходить из виджета (Add Task). Но он замораживает графический интерфейс, и я не знаю почему.
Я пытался сделать его асинхронным с модулем Multiprocessing, но по какой-то причине он не работал.
to_do.py
Полный код
Вам нужно поискать эти функции
async def main():
conn = sqlite3.connect("projects.db")
c = conn.cursor()
c.execute("SELECT * FROM memo")
data=c.fetchall()
while True:
for task in data:
if task[3]!= None:
# print(type(Dt[3]))
# print(Dt[3])
current_date=str(datetime.datetime.now().replace(microsecond=0))
# print(type(current_date))
#print(current_date)
if(task[3]==current_date):
#Put the Pop-Up Here
print("Yes")
await asyncio.sleep(5)
async def m_main():
ev1 = loop.create_task(main())
def reminder_exit():
global newwin
#loop = asyncio.get_event_loop()
#try:
#loop.run_until_complete(main())
m_main()
#newwin.quit()
#finally:
#loop.close()
Я ожидаю, что обе функции будут работать асинхронно, но вместо этого графический интерфейс зависает.