[英]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::OpenURL
和Qt::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.