Russian Qt Forum
Ноябрь 24, 2024, 14:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: передача сигнала в QProcess  (Прочитано 3030 раз)
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-х часовой поиск ничего не дал.
Записан
mutineer
Гость
« Ответ #1 : Октябрь 15, 2012, 16:41 »

У класса QProcess нет сигнала StartBut1(). Чтобы делать вызовы между двумя приложениями, нужно использовать какую-нить систему InterProcess Comunication (tcp-сокеты, DBus, Shared memory, etc)
Записан
teatralaik
Гость
« Ответ #2 : Октябрь 15, 2012, 19:07 »

А добавить нужный слот, к примеру переопредлив класс QProcess, нельзя?  Просто не хотелось бы добавлять еще один интерфейс в проект...
Записан
minigo
Гость
« Ответ #3 : Октябрь 15, 2012, 19:09 »

если не ошибаюсь, то QProcess - это запус другого процесса - а следовательно другое адресное пространство - значит механизм сигналов - слотов работать не будет.
Записан
mutineer
Гость
« Ответ #4 : Октябрь 15, 2012, 20:56 »

А добавить нужный слот, к примеру переопредлив класс QProcess, нельзя?  Просто не хотелось бы добавлять еще один интерфейс в проект...

Можно, но он все равно будет отрабатывать в том же процессе, в котором существует QProcess
Записан
teatralaik
Гость
« Ответ #5 : Октябрь 16, 2012, 07:46 »

Ну раз нельзя, то буду тогда общей памятью пользоваться. Спасибо за ответы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 21.