Russian Qt Forum

Qt => Общие вопросы => Тема начата: mr.Koddy от Ноябрь 20, 2004, 11:07



Название: запуск консольной программы из QT-приложения
Отправлено: mr.Koddy от Ноябрь 20, 2004, 11:07
Надо мне в QT запустить прогу.Сложность в том, что она консольная.
Вот я для начала сделал такой пример::
Код:

QProcess *proc =new QProcess/*(this)*/;
proc->addArgument("help > ~/ddd");
proc->start();

Компилиться, но не работает(файл не создает). :x [/code]


Название: запуск консольной программы из QT-приложения
Отправлено: Admin от Ноябрь 20, 2004, 14:03
попробуй сначала задовать абсолютные пути к файлам

а то помоему всякиее конструкции типа ~/ shell развертывает bash например


Название: запуск консольной программы из QT-приложения
Отправлено: Hellenna от Ноябрь 20, 2004, 14:07
мне кажется, что нужно еше в QProcess передать имя проги.
например если мы хотим поместиь строчку "hellow world" в файл new, то пишем так
Код:
QProcess *proc=new QProcess(this);
proc->addArgument ("echo ");
proc->addArgument("\"hello world\" > new");
proc-<start();

у меня оно так работает.
Может я конечно что-то не так поняла и у тебя проблема в другом...сорри если что.


Название: запуск консольной программы из QT-приложения
Отправлено: mr.Koddy от Ноябрь 20, 2004, 16:13
Тема закрыта.Всем спасибо.
Консольная прога запустить не получиться т.к. она там запрос делает, а он мне не нужен.
Буду копаться в исходниках консольной проги. :roll:


Название: запуск консольной программы из QT-приложения
Отправлено: eugrus от Декабрь 28, 2004, 13:44
а почему бы воспользоваться функцией system() из стандартной библиотеки???


Название: запуск консольной программы из QT-приложения
Отправлено: pilot.net от Декабрь 28, 2004, 13:54
Можно попробовать использовать функции
virtual QString QProcess::readLineStdout ()
virtual void QProcess::writeToStdin ( const QByteArray & buf )