Закрытие приложения wxPython в отдельном потоке приводит к появлению предупреждения окна
У меня есть сервер Flask-SocketIO, который инициализирует графический интерфейс в отдельном потоке.
if __name__ == '__main__':
if len(sys.argv) > 1 and sys.argv[1] == 'dev':
print "Running Flask-SocketIO on dev mode"
else:
print "Running Flask-SocketIO on production mode"
print 'Running Graphical User Interface...'
thread.start_new_thread(display_react.main, ())
print 'Initializing server'
socketio.run(app, debug=False)
Графический интерфейс в основном является примером cefpthon3, в котором используется wxPython, но вместо обычного браузера он отображает только определенную страницу, обслуживаемую сервером. На данный момент я хочу, чтобы все приложение закрылось, когда я закрываю графический интерфейс. Для эффекта я создал маршрут на сервере, который (при вызове) отключит сервер.
@app.route('/shutdown', methods=['GET'])
def shutdown():
server_request.shutdown()
socketio.stop()
print "Trying to close..."
return 'Server shutting down...'
И этот маршрут вызывается, когда перед закрытием wxPython. Однако эта ошибка появляется до выключения сервера:
Может кто-нибудь помочь мне решить или скрыть это?
1 ответ
wxPython почти всегда должен быть основным потоком, поэтому, скорее всего, вы видите эту ошибку, которая возникает на wxIsMainThread
, Одним из несколько простых решений было бы запустить wxPython в качестве основного потока / приложения и запустить Flask в потоке.
Я думаю, что это будет работать лучше. Вы можете попросить группу Google wxPython найти другие обходные пути.