Терминальный виджет в приложении GTK

Мне нужно что-то вроде терминального виджета в моем приложении, но без оболочки, как Bash. Я слышал о VTE. Для соединения VTE с оболочкой я использовал:

Vte.Terminal.fork_command_full(0, "/home/user", ("/bin/bash",), "", 0, None, None)

Есть ли возможность перенаправить входные данные в пользовательскую функцию вместо оболочки?

Если это невозможно с VTE, я интересуюсь другими решениями, как решить мою проблему.

1 ответ

Вы можете передать любую команду, которую хотите fork_command_full, но это звучит почти так, как будто вы хотите что-то более похожее на текстовую запись, где вы позволяете пользователю вводить команду, а затем ваш код обрабатывает как выполнение команды, так и обработку возвращаемых данных.

Для этого я бы использовал subprocess.Popen а затем загрузить вывод команды в Gtk.TextView используя текстовые теги, чтобы пометить stderr как красный текст.

Другие вопросы по тегам