簡體   English   中英

問:如何檢查openUrl()是否已經打開? 在窗戶

[英]Qt how to check if openUrl() is already open ? in windows

在Qt app中使用此功能打開chm幫助文件:

void ToolBar::OpenHelp()
{
   QDesktopService::openUrl(QUrl("my_help_file.chm")) ;
}

問題是當我點擊它我希望它只打開my_help_file.chm的一個實例現在我可以打開我點擊打開按鈕的實例數。 如果以某種方式完成了嗎?

可能沒有一種好方法可以通過這個特定功能實現您想要的功能。 您可以跟蹤是否已在應用程序中單擊該按鈕,但由於您不知道打開URL的應用程序(因為由操作系統來決定啟動什么(如果有的話)),所以沒有了解用戶隨后是否關閉窗口的好方法。

好的,從這個鏈接: https//qt-project.org/forums/viewthread/10945

和本課程參考: http//harmattan-dev.nokia.com/docs/library/html/qt4/qdesktopservices.html#setUrlHandler

我可以為這個問題建議一個解決方案,但我不確定它是否有效。 使用UrlHandler,您可以自定義openUrl函數的行為。

好吧,我認為沒有簡單的方法可以做到這一點。 乍一看,我會說使用QProcess自己生成外部進程。 請看qdesktopservices.cpp,了解如何以獨立於平台的方式執行此操作。

_

此函數提供了一種自定義openUrl()行為的方法。 如果使用具有指定方案的URL調用openUrl(),則調用receiver對象上的給定方法而不是QDesktopServices啟動外部應用程序。

所以你可以調用自己的進程並處理它。

暫無
暫無

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

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