Фокус клавиатуры потерян в PySimpleGUI - PullRequest
0 голосов
/ 24 января 2020

У меня есть приложение PySimple GUI, которое использует cef python3, чтобы открыть окно браузера (и делает его дочерним окном pysimple gui .Canvas), чтобы отобразить интерактивную сборку для просмотра в 3D с помощью Babylon. js.


def createBrowser(windowInfo, settings, url):
    global browser

    browser = cef.CreateBrowserSync(windowInfo,
                                    settings=settings,
                                    url=url)

def WebUiThread():
    win32gui.PumpMessages()


webUiThread=threading.Thread(target=WebUiThread)
webUiThread.daemon=True
webUiThread.start()

sys.excepthook = cef.ExceptHook

settings={"multi_threaded_message_loop": True}
cef.Initialize(settings)

windowInfo = cef.WindowInfo()
rect = [0, 0, 1000, 500]
windowHandle = window.FindElement("browserFrame").TKCanvas.winfo_id()

windowInfo.SetAsChild(windowHandle, rect)

cef.PostTask(cef.TID_UI, createBrowser, windowInfo, {}, "http://localhost:1234")

Все это работает, но как только я взаимодействую с окном браузера (например, использовал мышь для поворота 3d-объекта), ввод с клавиатуры в поля PySimple GUI становится невозможно (ввод мыши (например, изменение Spinners) все еще возможен): я не вижу курсор после того, как щелкнул (с помощью мыши) по полю.

Когда я щелкаю мышью где-то за пределами PySimple Окно GUI (а затем поле в окне PySimple GUI) снова работает с клавиатуры.

...