我使用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">© Me, myself & 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>
我有兩個問題:
有什麼樣Firebug的,我可以用它來檢查加載的文件中
QWebView
?。否則,我如何確認已加載文檔中引用的樣式表和JavaScript已成功加載?有沒有辦法關閉
QWebView
中的所有樣式默認值?
謝謝,關於設置,我可以簡單地問qwebview根本不使用任何默認設置?我希望使用CSS完成所有樣式 – 2014-10-12 13:40:14
我不認爲標準定義了這些默認設置,所有瀏覽器都有默認設置。如果你想讓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