2017-07-26 2 views
-4

QTで1つのプッシュボタンを持つメインウィンドウを作成しました。プッシュボタンをクリックしたときに追加の小さなプログラムを実行しようとすると、動作しません。私は次のコードを持っています:QTプッシュボタンから外部プログラムを実行

void MainWindow::on_pushButton_clicked() 
{ 
    QProcess *process = new QProcess(this); 
    process->start("/home/helloworld.out"); 
} 

私はLinuxで作業しています。何が起こる可能性がある任意のアイデア?前もって感謝します。

+0

_ "何が起こる可能性がありますか?" _ - あなたの説明に基づいて、あなたのkajiggerが整列していないように思えます。 –

+0

エラーメッセージが表示されますか?プロセスの状態を確認できますか? [エラーの列挙を参照してください。http://doc.qt.io/qt-5/qprocess.html] –

+0

'/ home'フォルダにあるファイルを実行する権限を持っていますか?通常はアクセスできるデフォルトのユーザです'/ home/$ USER' – eyllanesc

答えて

0

あなたのプロセスを開始してからすぐに戻ります。 QProcessからの信号を接続する予定がない場合は、deleteLaterを使用しないように静的に割り当てることができます。

このようなものを試してみてください。

void MainWindow::on_pushButton_clicked() 
{ 
    QProcess process;; 

    process.start("~/helloworld.out"); 
    process.waitForStarted(); 
    process.waitForFinished(); 
    process.close(); 
} 

私は手足にステップアウトし、多分あなたは/home/helloworld.outが、~/helloworld.outを意味するものではありませんでした提案ます。いずれの場合も、パスが存在するかどうかを確認してください。

関連する問題