Ошибка: RuntimeError: main thread is not in main loop

from tkinter import *
import keyboard
tk=Tk()
uincs=StringVar()
nameo=Entry(tk,textvariable=uincs)
nameo.grid(column=0,row=0)
def save():
    nameusing=uincs.get()
    print(nameusing)
keyboard.add_hotkey('ctrl+S',save)
tk.mainloop()

С чем может быть связана эта ошибка? Пробовал сделать через tk.after().


Ответы (3 шт):

Автор решения: Perhik

Запустить цикл забыли:

tk.mainloop()
→ Ссылка
Автор решения: Чипполино

Ошибка возникает из-за неправильного форматирования и отсутствия пробелов и переносов строк в коде.

Писать код надо так:

from tkinter import *
import keyboard

tk = Tk()
uincs = StringVar()
nameo = Entry(tk, textvariable=uincs)
nameo.grid(column=0, row=0)

def save():
    nameusing = uincs.get()
    print(nameusing)

keyboard.add_hotkey('ctrl+S', save)
tk.mainloop()
→ Ссылка
Автор решения: Stanislav Volodarskiy

Не надо использовать keyboard, все нужные средства уже есть в самом tk:

from tkinter import *


def save(event):
    print(event)
    nameusing = uincs.get()
    print(nameusing)


tk = Tk()
uincs = StringVar()
nameo = Entry(tk, textvariable=uincs)
nameo.grid(column=0, row=0)

tk.bind('<Control-KeyPress-s>', save)
tk.mainloop()
→ Ссылка