从QT按钮中运行外部程序
问题描述:
我在QT中创建了一个带有一个按钮的主窗口,并且当我单击按钮时尝试运行一个额外的小程序时,它不起作用。我有以下代码:从QT按钮中运行外部程序
void MainWindow::on_pushButton_clicked()
{
QProcess *process = new QProcess(this);
process->start("/home/helloworld.out");
}
我正在使用Linux。任何想法可能会发生什么?先谢谢你。
答
您正在开始您的过程,然后立即返回。如果您不打算连接QProcess
的任何信号,则可以静态分配它以免使用deleteLater
。
尝试类似这样的东西。
void MainWindow::on_pushButton_clicked()
{
QProcess process;;
process.start("~/helloworld.out");
process.waitForStarted();
process.waitForFinished();
process.close();
}
我会走出的肢体和建议也许你并不意味着/home/helloworld.out
但~/helloworld.out
。在任何情况下,检查路径是否存在。
_“任何想法会发生什么?” - - 根据您的描述,听起来您的kajigger不符合要求。 –
您是否看到任何错误消息?你能检查过程的状态吗? [请参阅错误枚举http://doc.qt.io/qt-5/qprocess.html] –
您是否有权执行'/ home'文件夹中的某个文件?通常使用您只能访问的默认用户'/ home/$ USER' – eyllanesc