用qt关闭外部应用程序

时间:2013-06-21 19:42:40

标签: c++ qt

请问如何关闭先前在qt c ++中使用QDesktopServices::OpenURL打开的应用程序。 因为我需要在我的应用程序之外的某个时间点打开的PDF中更新文本。

QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::pdfFormat);
printer.setOutputFileName("file.pdf");
doc.print(&printer);  // doc is QTextDocument
QDesktopServices::openUrl(QUrl("file.pdf"));

此外,我想了解QDesktopServices::OpenURLQt::openUrlExternally之间的区别,以及何时使用它们。

1 个答案:

答案 0 :(得分:6)

您无法关闭QDesktopServices::OpenURL打开的外部应用程序。没有这样的选项,并且此方法不提供有关可用于关闭它的已启动进程的信息。

您可以使用与本机C ++平台相关的函数来确定PDF查看器可执行文件的路径。然后,您可以使用QProcess启动它。因此kill()terminate()可用于关闭应用程序。

Qt::openUrlExternally可以在QML代码中使用,QDesktopServices::OpenURL可以在C ++代码中使用。这是唯一的区别。我已阅读Qt::openUrlExternally来源,内部调用QDesktopServices::OpenURL