ユーザーからスクリプトを読み取り、そのスクリプトをファイルQProcess
として渡す必要があります。
たとえば、ユーザーはこれ、たとえば Python スクリプトを挿入します。
import sys
print(sys.copyright)
そのスクリプトをファイルに入れ、そのファイルを使用して Python インタープリターを呼び出す必要があります。
QTemporaryFile
そのファイルはプロセスの起動時にのみ提供され、開いたままにしておく必要がないため、を使用することを考えました。
問題は、QTemporaryFile を開き、それに何かを書き込んで、そのファイルをプロセスに渡し (無期限に続行します)、一時ファイルを破棄しても安全ですか? プロセスがそのファイルを再び必要とする場合はどうなりますか? プロセスがファイルを開いたままにするとどうなりますか?
プロセスが開いたままにしておくと、問題は発生しないと思います。おそらく QTemporaryFile はパスのリンクを解除しますが、メモリ内のデータには引き続きアクセスできます。
しかし、プロセスがファイルを再度開こうとした場合はどうなるでしょうか?
ここに例としてのスニペットがあります(オンザフライで書かれています)
QString script = QInputDialog::getText(blah);
QTemporaryFile tmp;
if (tmp.open()) {
tmp.write(script.toUtf8());
QStringList params;
params << tmp.fileName();
QProcess *proc = new QProcess("/usr/bin/python3");
proc->start(params);
}