Возникла необходимость отображать в форме вывод команды пинг.
void InfoObjectDialog::on_toolButtonPing_clicked()
{ if(ui->pingOutput->isHidden()) {
ping = new QProcess(this);
ping->setProcessChannelMode(QProcess::MergedChannels);
connect( ping, SIGNAL(readyReadStandardOutput ()), this, SLOT(print_ping()) );
#ifdef Q_OS_WIN
ping->start("ping", QStringList() << "-t" <<ip);
#else
ping->start("ping", QStringList() << ip);
#endif
} else {
ping->kill();
}
}
void InfoObjectDialog::print_ping()
{
QByteArray output;
output = ping->readAllStandardOutput ();
QTextCodec *codec = QTextCodec::codecForName("cp-866");
QString fio = codec->toUnicode(output.data());
fio.replace("\n","");
qDebug() << "ping output" << fio;
ui->pingOutput->appendPlainText(fio); //вывод в гуи
}
ping->kill(); Это понятно убивает процесс.
А хотелось бы послать Ctrl+C. дабы получить статистику работы ping.
Может я не там Асистент читаю? :-)