Russian Qt Forum

Qt => Вопросы новичков => Тема начата: teatralaik от Октябрь 15, 2012, 16:23



Название: передача сигнала в QProcess
Отправлено: teatralaik от Октябрь 15, 2012, 16:23
Доброго времени суток!
Моя проблема состоит в следующем:
Нужно реализовать 2 QDialoga под QNX 6.5, запускающихся на двух разных экранах. Причем одно должно быть управляющем, а второе логом. Собственно в первом запускается второе как дочерний процесс. Но вот как передать ему признак нажатия кнопки не пойму. Вот код первого:
Код:
ControlFMon::ControlFMon(QWidget *parent)
    : QDialog(parent)
{
ui.setupUi(this);

m_processDLG = new QProcess(this);
m_processDLG->start("LogFMon");

if (!m_processDLG->waitForStarted())
  {
msg.setText("Ошибка создания лога");
msg.show();
  }

st = connect(ui.pushButton,SIGNAL(clicked()),m_processDLG,SLOT(StartBut1()));
if (st)
{
msg.setText("NORMa");
msg.show();
}
else
{
msg.setText("NE NORMa");
msg.show();

}
}

Во втором добавляю слот под этот сигнал:
Код:
void LogFMon::StartBut1(void)
{
msg.setText("OK");
         msg.show();

}

но ничего не работает.
Наверное уже обсуждалось много раз, но я новичок в qt. 2-х часовой поиск ничего не дал.


Название: Re: передача сигнала в QProcess
Отправлено: mutineer от Октябрь 15, 2012, 16:41
У класса QProcess нет сигнала StartBut1(). Чтобы делать вызовы между двумя приложениями, нужно использовать какую-нить систему InterProcess Comunication (tcp-сокеты, DBus, Shared memory, etc)


Название: Re: передача сигнала в QProcess
Отправлено: teatralaik от Октябрь 15, 2012, 19:07
А добавить нужный слот, к примеру переопредлив класс QProcess, нельзя?  Просто не хотелось бы добавлять еще один интерфейс в проект...


Название: Re: передача сигнала в QProcess
Отправлено: minigo от Октябрь 15, 2012, 19:09
если не ошибаюсь, то QProcess - это запус другого процесса - а следовательно другое адресное пространство - значит механизм сигналов - слотов работать не будет.


Название: Re: передача сигнала в QProcess
Отправлено: mutineer от Октябрь 15, 2012, 20:56
А добавить нужный слот, к примеру переопредлив класс QProcess, нельзя?  Просто не хотелось бы добавлять еще один интерфейс в проект...

Можно, но он все равно будет отрабатывать в том же процессе, в котором существует QProcess


Название: Re: передача сигнала в QProcess
Отправлено: teatralaik от Октябрь 16, 2012, 07:46
Ну раз нельзя, то буду тогда общей памятью пользоваться. Спасибо за ответы.