Терминальный виджет в приложении 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 как красный текст.