我正在尝试从我的QT应用程序运行iBooks。 我尝试了QProcess :: execute()和QProcess :: start(),但没有一个工作。
QString program ="/Users/muhammed/Applications/iBooks.dmg";
QStringList arguments;
QProcess *q=new QProcess(this);
q->start(program,(QStringList) arguments<<"/Users/muhammed/Applications/iBooks.dmg");
使用此代码时没有任何反应。请帮忙。
答案 0 :(得分:0)
您无法直接运行.dmg
文件。您需要将.dmg
文件路径传递给open
命令,如下所示:
$ open application.dmg
因此,您的Qt代码看起来像QProcess::execute
静态方法:
QProcess::execute( "open", { "your-dmg-file-path-here" } );
或者,
const QString dmgPathArg { "your-dmg-file-path-here" };
QProcess process {};
process.start( "open", { dmgPathArg } );
if ( !process.waitForFinished( -1 ) )
{
qDebug() << process.readAllStandardError();
return;
}
qDebug() << process.readAllStandardOutput();
实际上,您可以使用readAllStandardError()
和readAllStandardOutput()
方法看到一些错误字符串。
查看QProcess的文档。它有一些非常好的例子。
希望有所帮助。