Qtが新しくなりました。リソースファイルを実行しているときにQProcessの出力をリダイレクトする
私はQProcessを使用して外部シェルスクリプトを実行し、GUI上の出力をtextBrowserにリダイレクトしています。コード:mainwindow.hで
:
private:
QProcess *myProcess;
とmainwindow.cpp:
void MainWindow::onButtonPressed(){
myProcess = new QProcess(this);
myProcess->connect(myProcess, SIGNAL(readyRead()), this, SLOT(textAppend()));
myProcess->start("./someScript.sh", arguments);
}
void MainWindow::textAppend(){
ui->textBrowser->append(myProcess->readAll());
}
これは外部スクリプトを実行するために完璧に動作します。私の質問は、リソースファイルとして含まれているスクリプトで同じプロセスを適用する方法です。 "./someScript.sh"
をリソースバージョン":/someScript.sh"
に置き換えようとしましたが、動作しないようです。 リソーススクリプトは完全に実行されますが、コンソール出力は消えます。
それは「動作するようには思えない」とは何を意味するのでしょうか?あなたは空の出力を得ますか? QFile :: exists( ":/ someScript.sh") ' – paceholder
スクリプトは実行されます(他のソースからは見ることができます)が、空の出力が得られます。 – Sphics