Stackoverflow не является службой написания кода.Скорее цель состоит в том, чтобы помочь вам написать код.Обычно лучше написать код перед тем, как задать вопрос, но в этом случае вы застряли перед кодированием.
idlelib реализует IDLE.Хотя вы можете использовать его в противном случае, он является закрытым в том смысле, что код и интерфейсы могут меняться в любом выпуске без обычных ограничений обратной совместимости.Импортируйте и используйте модули idlelib на свой вкус.
В настоящее время окно оболочки представляет собой Toplevel с меню и фреймом.Последний имеет текстовую и вертикальную полосу прокрутки.Невозможно визуально встроить Toplevel в рамку (или в другой Toplevel или root = Tk ()).top = Toplevel(myframe)
работает, но top
не может быть place
d, pack
ed или grid
ded в пределах myframe
.
Я надеюсь в будущем провести рефакторинг edit.py и pyshell.py, чтобы отделить окно с меню от фрейма с прокручиваемым текстом.Результат должен включать встраиваемые классы EditorFrame и ShellFrame, которые имеют parent
в качестве аргументов.Но это в будущем.
В настоящее время можно запустить IDLE из питона с помощью import idlelib.idle
.Однако, поскольку он запускает mainloop () (в своем корне), он блокируется и не завершает работу, пока все окна IDLE не будут закрыты.Это может быть не то, что нужно.
Если допустимо запускать Shell в отдельном окне, можно извлечь из python.main 10-20 строк, необходимых для запуска Shell.Некоторые эксперименты будут необходимы.Если основное приложение использует tkinter, эта функция должна получить корень приложения в качестве аргумента и не вызывать mainloop ().