从QT按钮中运行外部程序

问题描述:

我在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

您正在开始您的过程,然后立即返回。如果您不打算连接QProcess的任何信号,则可以静态分配它以免使用deleteLater

尝试类似这样的东西。

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

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

我会走出的肢体和建议也许你并不意味着/home/helloworld.out~/helloworld.out。在任何情况下,检查路径是否存在。