![](/img/trans.png)
[英]QDesktopServices::openUrl() doesn't open page in chrome on windows. Workaround?
[英]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.