void MainWindow::on_pushButton_clicked(){ this->proc = new QProcess(this); this->proc->setProcessChannelMode(QProcess::MergedChannels); // Устанавливаем, что вывод (и ошибки и прочее) будет валиться в один канал connect (this->proc, SIGNAL(readyReadStandardOutput()), this, SLOT(onReady())) ; // ловим когда процесс что то выдал connect (this->proc, SIGNAL(readyReadStandardError()), this, SLOT(onReadyError())) ; // ловим когда процесс выдал ошибку connect (this->proc, SIGNAL(onFinished()), this, SLOT(onFinished())) ; //ловим когда процесс закончил работу proc->start("hlds.exe -game cstrike +port 27015 +map de_dust2 -console"); } void MainWindow::onReady(){ QString output(QString::fromLocal8Bit(static_cast<QProcess *>(sender())->readAll())); if (!output.isEmpty()) { //qDebug() << output; ui->textEdit->append(output); }} void MainWindow::onReadyError(){ QString output(static_cast<QProcess *>(sender())->readAllStandardOutput ()); if (!output.isEmpty()) { ui->textEdit->append("Erorr: " + output); }} void MainWindow::onFinished(){ qDebug () << "Ура"; // А так можно прибить процесс // this->proc->terminate(); //this->proc->waitForFinished(10000);} void MainWindow::on_pushButton_2_clicked(){ proc->write("map de_dust\n");}
void MainWindow::on_pushButton_2_clicked(){ proc->write("map de_dust\n");}
proc->write("map de_dust\n\r");
proc->start("hlds.exe -game cstrike +port 27015 +map de_dust2 -console"); //запускаем процесс
QStringList arg; arg << "-game cstrike +port 27015 +map de_dust -console"; proc->start("hlds.exe", arg); //запускаем процесс
C++ (Qt)arg << "-game" << "cstrike" << "+port" << "27015" << "+map" << "de_dust" << "-console";
QProcess cmd; cmd.setProcessChannelMode(QProcess::MergedChannels); QStringList arg; arg << "-game" << "cstrike" << "+port" << "27015" << "+map" << "de_dust2" << "-console"; cmd.start("hlds.exe", arg); if (cmd.waitForStarted() == NULL) { return; } cmd.waitForReadyRead(); QByteArray result = cmd.readAll(); cmd.write("cmdlist\n"); cmd.waitForFinished(9000); result = cmd.readLine(); result = cmd.readAll(); ui->textEdit->append(result.data());
if (!cmd.waitForStarted()) { return; }
cmd.setWorkingDirectory("c:/123/"); cmd.start("hlds.exe", arg);