2016-08-15 111 views
1

是否有Qt接口來獲取系統的默認瀏覽器?如何獲取系統的默認瀏覽器?

我想在瀏覽器,而不是系統的默認應用程序明確地打開一個file://網址,所以QDesktopServices::openUrl是不是因爲

的方式。如果URL是本地文件的引用(即, URL方案是「文件」),那麼它將用合適的應用程序而不是Web瀏覽器打開。

+1

你不應該真正取代了系統設置。你爲什麼試圖強迫你的手?你在說什麼類型的文件? – peppe

+0

許可證文件(.html)不應在任何IDE或文本編輯器中打開,但應呈現。 –

+1

那麼,如果用戶決定設置一個IDE來打開'html'文件,那麼這就是她的問題,我會說...這是HTML控件的內容嗎?你可以讓它「足夠簡單」由QTextBrowser渲染。 (或者用您的應用程序全押併發布WebKit/Chromium)。 – peppe

回答

0

對於特定的應用程序,你應該使用自帶的Qt web引擎:如果HTML是很簡單的

QWebEngineView *view = new QWebEngineView{parent}; 
view->load(QUrl{"file://...."}); 
view->setWindowFlags(Qt::Window); 
view->setAttribute(Qt::WA_DeleteOnClose); 
view->show(); 

,使用文本瀏覽器:

QTextBrowser *view = new QTextBrowser{parent}; 
view->setSource(Qurl{"file://...."}); 
view->setWindowFlags(Qt::Window); 
view->setAttribute(Qt::WA_DeleteOnClose); 
view->show();