2016-08-15 110 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();