1

请问我如何关闭我以前QDesktopServices::OpenURL在 qt c++ 中打开的应用程序。因为我需要更新我已经在某个时间点在我的应用程序之外打开的 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::OpenURL而且我想知道Qt::openUrlExternally何时使用它们之间的区别。

4

1 回答 1

6

您无法关闭由QDesktopServices::OpenURL. 没有这样的选项,并且此方法没有提供有关可用于关闭它的已启动进程的信息。

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

Qt::openUrlExternally可以在QML代码中使用,QDesktopServices::OpenURL也可以在C++代码中使用。这是唯一的区别。我读过Qt::openUrlExternally资料,它在内部调用QDesktopServices::OpenURL

于 2013-06-21T19:51:58.793 回答