Есть ли способ подключить Python / Tkinter к уже запущенному приложению Tcl / Tk? - PullRequest
4 голосов
/ 07 апреля 2011

Я много работаю над Pure Data, приложением, написанным на Tcl / Tk и C. Я хотел бы иметь возможность создавать Python API для плагинов для изменения графического интерфейса Tcl / Tk. Похоже, что для этого мне нужно было бы передать работающий экземпляр Tk в python, а затем заставить Tkinter использовать этот экземпляр Tcl / Tk для своих команд. Так что-то вроде:

root = Tk(pid_of_running_app)

Ответы [ 3 ]

5 голосов
/ 07 апреля 2011

Посмотрите на команду send , вы можете сделать именно это (для приложений Tk, а не для простых приложений Tcl).Я делаю это все время из моего Emacs (подключаюсь к запущенным приложениям Tk).

Tcl / Tk не позволит вам поработить другой процесс, однако, используя команду send, вы можете легко отправлять любые командыты хочешьПросто найдите «имя» другого переводчика, используя [winfo interps] (примечание: имя вашего приложения Tk можно получить / установить с помощью [tk appname]. В этот моментлюбая команда, которую вы хотите выполнить в другом интерпретаторе, будет отправлена ​​путем вычисления

send $other_app tk_dialog . "Sample Dialog" "See, it's this easy." "" 0 Ok
1 голос
/ 07 апреля 2011

Можно использовать встроенную инфраструктуру Tk send (как упоминает Трей) или использовать пакет comm из Tcllib .Должна быть возможность говорить по протоколу связи напрямую с Python, но я никогда не изучал детали, так что вы могли бы также указать путь.

0 голосов
/ 06 мая 2011

Вы можете использовать сокеты для связи между двумя приложениями.

...