2014-10-12 24 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