2017-07-26 38 views
-4

我在QT中創建了一個帶有一個按鈕的主窗口,並且當我單擊按鈕時嘗試運行一個額外的小程序時,它不起作用。我有以下代碼:從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。在任何情況下,檢查路徑是否存在。