Почти каждый подпроцесс, который вы можете обернуть, будет буферизовать свой вывод, если вы не сумеете обмануть его, полагая, что он действительно подключен к терминалу - а подпроцесс не может этого сделать. Скорее, посмотрите на pexpect (хорошо работает на любой платформе, которая позволяет иметь псевдотерминал, т. Е. На любой платформе, кроме Microsoft Windows; в Windows вы можете попробовать wexpect , но у меня нет опыта работы с последний).
Эти модули выдают вывод подпроцесса сразу после его создания и стремятся обмануть модуль для создания этого вывода как можно скорее и без буферизации, поэтому они должны упростить вам получение этого вывода в реальном времени и добавление его к текстовое поле, которое вы хотите обновлять.