Название: QProcess Отправлено: Firefox от Июнь 03, 2014, 14:57 Здравствуйте. вычитала в документации, что в QProcess возможно общение через каналы. вопрос в qt 4.3.3 работает ли это в Windows 7? Мне необходимо запустить процесс my_proga.exe и программы Base.exe, и получать события нажатия кнопок из my_proga.exe в Base.exe. Но я не понимаю, если это можно сделать как-то, то как записать в my_proga.exe то, что надата кнопка 1 и это я прочитаю потом в Base.exe по сигналу readyReadStandardOutput ().
Код: QProcess prc= new QProcess (parent); Название: Re: QProcess Отправлено: Firefox от Июнь 03, 2014, 15:50 В общем-то вопрос по сути как записать в stdout из дочернего процесса правильно.
Название: Re: QProcess Отправлено: xokc от Июнь 04, 2014, 08:13 Ну хоть немного конкретики - первый пост был отгуглотрансечен с русского на зимбабвийский и обратно?
В дочернем процессе cout использовать запрещено? Название: Re: QProcess Отправлено: Firefox от Июнь 04, 2014, 09:24 Надо бало подключить iostream оказывается чтобы cout программа видела. и почему-то connect(prc, SIGNAL(readyReadStandardOНаutput ()), this, SLOT(read_prc()) ); возвращает false Название: Re: QProcess Отправлено: Old от Июнь 04, 2014, 09:47 программа ругается что не знает что такое cout, работаю в VS2003. Это потому, что cout определен в iostream.и почему-то А read_prc определен в секции slots?connect(prc, SIGNAL(readyReadStandardOutput ()), this, SLOT(read_prc()) ); возвращает false Название: Re: QProcess Отправлено: Firefox от Июнь 04, 2014, 09:54 Да это private slots,в консоли выводит следующее attempt to bind non-signal QProcess::readyReadStandardOutput()
Название: Re: QProcess Отправлено: Firefox от Июнь 04, 2014, 11:33 Проблема была с qobject но все хорошо, только пока что сигнал не генерится.
Название: Re: QProcess Отправлено: kambala от Июнь 04, 2014, 12:39 а my_proga.exe запускается вообще? может ее нет в папке с экзешником?
Название: Re: QProcess Отправлено: Firefox от Июнь 04, 2014, 13:03 Запескается. В конструкторе у нее стоит
Код: Std::cout<<"hello world"; Название: Re: QProcess Отправлено: Bepec от Июнь 04, 2014, 13:11 Когда подобное делал, QProcess не генерил сигнал, пока не приходил символ конца строки :D
Попробуйте, вдруг поможет :) Название: Re: QProcess Отправлено: Firefox от Июнь 04, 2014, 13:37 Спасибо попробую. пока выложу точный код моей программы, может там есть косяки явные
Код: ypr::ypr(QWidget *parent, Qt::WFlags flags) Код: #include <iostream> Название: Re: QProcess Отправлено: Firefox от Июнь 04, 2014, 14:01 \n не помог, подскажите что у меня может быть не так в коде
Название: Re: QProcess Отправлено: kambala от Июнь 04, 2014, 14:48 попробуй коннект делать перед pr_obz->start("TKO.exe", arg);
Q_OBJECT написан? Название: Re: QProcess Отправлено: Firefox от Июнь 04, 2014, 15:26 Пробовала ставить перед запуском не помогло. Q_Object есть, connect возвращает true. Если зактыть TKO.exe воучную, то тогда возникает сигнал и я захожу в слот. Но мне надо во время рботы программы отсылать данные , а не после завершения.
Название: Re: QProcess Отправлено: Old от Июнь 04, 2014, 15:54 Если зактыть TKO.exe воучную, то тогда возникает сигнал и я захожу в слот. Но мне надо во время рботы программы отсылать данные , а не после завершения. cout буферизируется. Сбрасывайте буфер, либо через его метод flush, либо добавьте в конец std::endl (endl сам вызовет flush).Название: Re: QProcess Отправлено: Kurles от Июнь 04, 2014, 15:55 \n не помог, подскажите что у меня может быть не так в коде Вместо "\n" использовать std::flushНазвание: Re: QProcess Отправлено: Bepec от Июнь 04, 2014, 15:59 Эмм... да, наверно меня не так понял ТС - именно std::endl необходимо использовать :)
Название: Re: QProcess Отправлено: Firefox от Июнь 05, 2014, 09:42 Спасибо большое за помощь, все хорошо работает.
|