Мне нужно разработать программу gui, в которой будет запущен внешний скрипт bash. Этот скрипт работает около 30-40 минут, и я хочу видеть выход системы в моем приложении в режиме реального времени. Как я могу это предоставить? Должен ли я использовать QTextStream? Просьба привести несколько примеров. Спасибо.Как перенаправить выход системы на мое приложение gui (qt, linux)?
3
A
ответ
5
Если вы запускаете скрипт через QProcess, вы можете получить вывод, подключившись к сигналу readyRead. Тогда просто нужно вызвать какие-либо функции чтения для получения данных, а затем отобразить их на любом виджете, который вы хотите, например, QTextEdit, который имеет функцию добавления для добавления текста.
Что-то вроде этого: -
// Assuming QTextEdit textEdit has been created and this is in a class
// with a slot called updateText()
QProcess* proc = new QProcess;
connect(proc, SIGNAL(readyRead()), this, SLOT(updateText()));
proc->start("pathToScript");
...
// updateText in a class that stored a pointer to the QProcess, proc
void ClassName::updateText()
{
QString appendText(proc->readAll());
textEdit.append(appendText);
}
Теперь, каждый раз, когда скрипт производит текст, ваша функция UPDATETEXT называется, и вы добавляете его в объект QTextEdit.
Смежные вопросы
- 1. Как подавить приложение Qt GUI?
- 2. Как проверить, работает ли приложение Qt GUI (в Linux)?
- 3. Qt GUI Application Linux
- 4. daemon системы Linux в Qt
- 5. Qt application GUI - автоматический запуск - linux
- 6. Консольный выход в приложении Qt GUI?
- 7. Интеграция библиотеки QT GUI DLL в мое приложение
- 8. Как заставить мое приложение открыть только один exe? qt, linux
- 9. Приложение Qt GUI неожиданно завершено
- 10. Qt enaubling GUI для Windows, отключающий GUI на linux
- 11. Как скомпилировать мое приложение Qt в статическую библиотеку?
- 12. Debian Начать приложение Qt GUI без рабочего стола
- 13. Как снизить приоритет QT Gui?
- 14. Приложение QT Autostart --- в linux
- 15. Распространять приложение QT в linux
- 16. Включить существующее приложение OpenCV в Qt GUI
- 17. Приложение Qt Jambi и различные операционные системы
- 18. Как работает приложение GUI GUI
- 19. консольный выход на gui
- 20. Как упаковать приложение ruby gui?
- 21. Xamarin.Auth: Использование Facebook oauth, как перенаправить на мое приложение?
- 22. Как перенаправить мое приложение Ember на основе ViewPort
- 23. Как перенаправить мое приложение, чтобы играть в приложение магазина?
- 24. Как профилировать мое приложение на C++ на linux
- 25. Перенаправить доменное имя на мое приложение, запущенное на порту 8080
- 26. Перенаправить пользователя в мое приложение из браузера
- 27. Как перенаправить выход мастеров-мастеров?
- 28. GUI в Qt OR GUI в Android
- 29. Ошибка производительности GUI GUI на linux
- 30. Запуск GUI-приложения на Linux, без отображения gui?
readyReadStandardError() и readyReadStandardOutput(), если вы хотите поймать stderr и stdout, но хотите обрабатывать их по-разному. –
Спасибо, его работы, но только если я 'proc-> start' не' startDetached' ... Почему? – wlredeye
К сожалению, это моя ошибка. Я отредактирую ответ. Если вы вызываете proc-> start, я предполагаю, что Qt хранит дескриптор процесса, возможно, порождает его как дочерний, но startDetached, как следует из названия, отделяется от процесса, поэтому не извлекает его вывод. Если вы действительно нуждались в нем, вы должны были бы посмотреть на IPC для связи между вашим приложением и процессом. – TheDarkKnight