передача команд в QProcess |
Здравствуйте, гость ( Вход | Регистрация )
передача команд в QProcess |
borune |
2.6.2014, 8:27
Сообщение
#1
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день, камрады,
возник такой вопрос - нужно в программе реализовать вызов терминала xterm, выполнить в нем некоторую команду, затем закрыть терминал, а вывод из терминала обработать потом в программе. Как такое делается, подскажите пожалуйста. |
|
|
Алексей1153 |
2.6.2014, 14:29
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
borune, ну ты вроде сам уже всё написал - попробуй через QProcess )))
|
|
|
borune |
2.6.2014, 23:33
Сообщение
#3
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Алексей1153 |
3.6.2014, 8:34
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
borune,
если открыть справку по классу, то там можно найти следующее ))) Цитата void QProcess::setArguments(const QStringList & arguments) Set the arguments to pass to the called program when starting the process. That function must be call before open() Цитата void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite) Starts the given program in a new process, if none is already running, passing the command line arguments in arguments. The OpenMode is set to mode. The QProcess object will immediately enter the Starting state. If the process starts successfully, QProcess will emit started(); otherwise, error() will be emitted. If the QProcess object is already running a process, a warning may be printed at the console, and the existing process will continue running. Note: Processes are started asynchronously, which means the started() and error() signals may be delayed. Call waitForStarted() to make sure the process has started (or has failed to start) and those signals have been emitted. Note: No further splitting of the arguments is performed. Windows: Arguments that contain spaces are wrapped in quotes. >>А как имитировать нажатие энтера по окончании ввода? это не знаю, разве что попробовать писать в поток процесса. Я это не делал, надо разбираться Сообщение отредактировал Алексей1153 - 3.6.2014, 8:35 |
|
|
Litkevich Yuriy |
4.6.2014, 13:49
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
вызов терминала xterm, выполнить в нем некоторую команду, затем закрыть терминал, а вывод из терминала обработать потом в программе. ошибка в рассуждении. Неправильные места выделены жирным. тебе ненужен терминал, тебе нужна программа, которую человек выполнял бы в терминале. вывод из терминала в принципе не существует, терминал печатает вывод у себя некой программы, вот его и бери. |
|
|
Текстовая версия | Сейчас: 28.1.2025, 20:37 |