Всем привет! Только начинаю программировать на unix и одно из заданий моих - написать псевдотерминал.
Вот соответственно та часть кода, которую я пишу. Мне удалось написать только то, чтобы при нажатии на кнопку, отправлялась команда из тестового поля и результат записывало в поле для вывода. Проблема заключается в том, что команды, которые сразу выдают ответ (типа df) проходят, а вот на команде ping приложение зависает и в поле для вывода не дает ничего. Надеюсь, что вы поможете в этом мне разобраться! Заранее спасибо!
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QProcess>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(nashSlot()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::nashSlot()
{
QString str1 = ui->lineEdit->text(); // получаем строку из первого QLineEdit
QProcess proc;
proc.start(str1);
proc.waitForFinished();
QByteArray output = proc.readAll();
proc.close();
ui->textBrowser->setText(output);
}