Как перезапустить окно kivy после использования клавиши ESCPython

Программы на Python
Anonymous
Как перезапустить окно kivy после использования клавиши ESC

Сообщение Anonymous »

Как перезапустить окно kivy после использования клавиши ESC
Я пытаюсь открыть приложение kivy во второй раз после закрытия окна (потому что это приложение в трее).Однако я столкнулся с исключением при закрытии приложения с помощью клавиши Esc и последующем повторном запуске приложения.
Эта ошибка не возникает. , когда я закрываю окно, вместо этого щелкнув крестик на панели окна.
Вот пример кода, воспроизводящий проблему:

Код: Выделить всё

from time import sleep

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.widget import Widget

class MyApp(App):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.my_window = Widget()

def build(self):
return self.my_window

def on_stop(self):
Window.hide()

if __name__ == '__main__':
Window.top = 30
app = MyApp()
app.run()
# Restart the App after one second
sleep(1)
Window.show()
app.run()
При закрытии первого окна с помощью клавиши esc второе окно не появляется. Вместо этого я получаю это:

Код: Выделить всё

Connected to pydev debugger (build 223.8836.43)
[INFO   ] WM_MotionEventProvider 
[INFO   ] WM_MotionEventProvider 
[ERROR  ] [Base        ] No event listeners have been created
[ERROR  ] [Base        ] Application will leave
python-BaseException
Есть ли способ избежать этой проблемы?
(Это происходит в kivy2.3.0 на python3.11 и windows11)

Подробнее здесь: https://stackoverflow.com/questions/784 ... ng-esc-key

Вернуться в «Python»