2014-10-12 26 views
0

我使用QWebView来显示html页面。我使用Twitter Bootstrap 3.2作为UI框架。我发现,在FF和Chrome浏览器中查看时页面的显示方式与在我的应用程序中显示为QWebView时页面显示方式不同。 FF和Chrome都相当类似地呈现html页面,但是在QWebView中,即使使用的字体等也不相同。QWebView是从引导过度样式3

这导致我认为QWebView将其自己的默认值应用于加载的html文档。

这里是如何QWebView在我的应用程序正在instansiated:

m_viewer = new QWebView(); 

//Disable Reload RH mouse click on browser view 
m_viewer->page()->action(QWebPage::Reload)->setVisible(false); 

// set blank sheet (to prevent flicker when startup screen is shown) 
m_viewer->setHtml("<html><body></body></html>"); 

setCentralWidget(m_viewer); 

我用setHtml()加载了新的一页。

这里是样本HTML我用它来测试所需要的功能

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta http-equiv="refresh" content="5; url=login.html" > 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <title>Dummy Demo</title> 
     <style type="text/css"> 
      body { -webkit-user-select: none; } 
     </style> 
     <link href="bootstrap-3.2.0-dist/css/bootstrap.min.css" rel="stylesheet"> 
    </head> 
    <body ondragstart="return false"> 
     <div class="container"> 
      <div class="hero-unit"> 
       <h1>Well, do you feel lucky Punk?!</h1> 
       <p>Lorem ipsum etc cetera ...</p> 
      </div> 
      <hr /> 
      <div class="footer"> 
       <div class="span4">&copy Me, myself &amp; I 2014</div> 
       <div class="span4"></div> 
       <div class="span4"></div> 
      </div> 
     </div> 
     <script src="js/jquery-1.8.2.min.js"></script> 
     <script src="bootstrap-3.2.0-dist/js/bootstrap.min.js"></script>   
    </body> 
</html> 

我有两个问题:

  1. 有什么样Firebug的,我可以用它来检查加载的文件中QWebView ?。否则,我如何确认已加载文档中引用的样式表和JavaScript已成功加载?

  2. 有没有办法关闭QWebView中的所有样式默认值?

回答

0
  1. QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true)应该增加一个“检查”上下文菜单,将弹出一个默认QWebInspector窗口,在这里你可以看到发生了什么HTML文档。

  2. 大部分的默认字体和样式都可以通过QWebSettings

根据您的操作系统上进行调整,QtWebKit的可能会从桌面环境采取默认设置,FF或Chrome不会(例如,如果你”重新使用KDE)。否则,它可能是一个错误,QtWebKit没有收到来自Web框架开发人员的官方浏览器的测试。

+0

谢谢,关于设置,我可以简单地问qwebview根本不使用任何默认设置?我希望使用CSS完成所有样式 – 2014-10-12 13:40:14

+1

我不认为标准定义了这些默认设置,所有浏览器都有默认设置。如果你想让QtWebKit使用与Chrome和FF相同的默认值,你应该可以通过调整QWebSettings来实现。可以使用http://stackoverflow.com/questions/6867254/browsers-default-css-for-html-elements中的信息,并通过QWebSettings :: setUserStyleSheetUrl将其应用到您的QWebView。字体名称也可能不会像FF和Chrome一样解析为相同的字体,这可能很难达到完美。 – jturcotte 2014-10-12 13:59:01