2014-09-02 143 views
0

我需要启动一个可执行文件,当我点击我的Qt应用程序中的一个按钮。要启动一个可执行文件,我正在使用QProcess对象。QProcess :: start没有启动进程

QProcess *executable = new QProcess(this); 
executable->start("test.exe"); 

test.exe存在于我的Qt应用程序所在的同一位置。

我在这里面临的问题是,当我正在调试时,它正在启动test.exe。但是当我没有调试运行时,它不会启动可执行文件。我不知道我在这里错过了什么。

+3

最可能'QProcess'没有找到你的'test.exe'文件。尝试定义完整的文件路径。 – vahancho 2014-09-02 07:23:20

+1

你会得到什么错误? – UmNyobe 2014-09-02 07:35:50

+1

将一个插槽连接到QProcess :: error信号,或者调用executable-> error()来查看存在什么错误(如果有的话):http://qt-project.org/doc/qt-5/qprocess.html #error – TheDarkKnight 2014-09-02 07:46:12

回答

1

当您在调试中和从资源管理器中运行程序时,应用程序尝试查找test.exe的目录不同。始终使用完整路径。

如果你把test.exe文件在您的应用程序的EXE所在的文件夹中,您可以使用此:

QDir(QCoreApplication::applicationDirPath()).absoluteFilePath("test.exe")