簡體   English   中英

使用QT關閉外部應用程序

[英]Closing an external application with 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之間的區別,以及基本上什么時候使用它們。

您無法關閉QDesktopServices::OpenURL打開的外部應用程序。 沒有此類選項,並且此方法不提供有關可用於關閉該進程的已啟動進程的信息。

您可以使用本機C ++平台相關的函數來確定PDF查看器可執行文件的路徑。 然后,您可以使用QProcess啟動它。 因此,可以使用kill()terminate()關閉應用程序。

Qt::openUrlExternally可以在QML代碼中使用,而QDesktopServices::OpenURL可以在C ++代碼中使用。 那是唯一的區別。 我已經閱讀了Qt::openUrlExternally源,它在內部調用QDesktopServices::OpenURL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM