Qtコードから 'part1_4_md'というシェルスクリプトファイルに文字列値を渡したいとします。Qtからシェルスクリプトファイルに引数を渡す
void MainWindow::on_pushButton_clicked()
{
QString path = ui->lineEdit->text();
QProcess *process = new QProcess;
process->start("/bin/bash", QStringList() << "/home/kha/Unix/QT/part1_4_md");
process->waitForBytesWritten();
process->waitForFinished();
QString output(process->readAllStandardOutput());
ui->textEdit->setPlainText(output);
QTextCursor textCursor = ui->textEdit->textCursor();
textCursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1);
}
私はLINEEDITボックスを作成したときにそのボックス内の文字列値では、ユーザーのタイプとボタンを押して、私は私のシェルスクリプトファイルとに渡されるその値を必要とする:これはQtのからの私のコードがありますシェルスクリプトファイルは、その値を使用して実行します。これは私のシェルスクリプトファイルは次のようになります。
#!/bin/bash
files=($*);
dates=();
for ((i = 0; i<${#files[@]}; i++))
do
dates[$i]=$(date -r ${files[i]} +"%Y%m%d");
done
文字列値が「ファイル」配列の引数として使用されるように「$の*」に渡すべきです。私にこれを行う方法を教えてください。
http://doc.qt.io/qt-5/qprocess.html#setArgumentsを使用する必要があります.BTWでは、UIスレッドからQProcessを起動して待つべきではありません。それは間違いです。 – AlexanderVX