QWebView正在覆盖引导程序3中的样式

QWebView is overriting styles from bootstrap 3

本文关键字:样式 引导程序 覆盖 QWebView      更新时间:2023-10-16

我正在使用QWebView来显示html页面。我使用Twitter引导程序3.2作为UI框架。我发现在FF和Chrome中查看页面时,页面的显示方式与在我的应用程序中使用QWebView呈现页面时不同。FF和Chrome对html页面的渲染非常相似,但在QWebView中,甚至使用的字体等都不同。

这让我想到QWebView正在将其自己的默认值应用于加载的html文档。

以下是QWebView在我的应用程序中的安装方式:

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中的所有样式默认值?

  1. QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true)应该添加一个"检查"上下文菜单,该菜单将弹出一个默认的QWebInspector窗口,您可以在其中查看HTML文档的情况。

  2. 大多数默认字体和样式可以通过QWebSettings 进行调整

根据您的操作系统,QtWebKit可能会从桌面环境中采用FF或Chrome不会采用的默认设置(例如,如果您使用KDE)。否则,QtWebKit可能会成为一个bug,它不会像web框架开发人员的官方浏览器那样接受太多测试。