【问题标题】:Remove ScrollBars from QWebEngineView or QWebEnginePage从 QWebEngineView 或 QWebEnginePage 中删除 ScrollBars
【发布时间】:2015-12-13 06:27:26
【问题描述】:

有没有办法从QWebEngineView 中删除滚动条,或者我可以以某种方式访问​​它的 ScrollArea?

使用 webkit 就像

WebView->page()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
WebView->page()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);

但我在 QWebEngine 中看不到任何类似的功能。我什至在 qwebengine 源代码中都看不到任何滚动区域。我有什么遗漏的吗?

更新:我想我可以尝试强制滚动条从与铬页面一起传递的一些 css 设置中消失

【问题讨论】:

  • 据我所知,Chromium 负责绘制滚动条,如果您想以任何方式修改它们,您必须自定义构建 WebEngine。

标签: qt qt5 qtwebengine


【解决方案1】:

只需将QWebEngineSettings::ShowScrollBars 设置为 Qt 5.10 中引入的 false

QWebEngineSettings::WebAttribute

【讨论】:

    【解决方案2】:

    更改网页的 CSS 样式有效。我用过

    <style type="text/css">
    body {
        overflow:hidden;
    }
    </style>
    

    但是对于那些无法访问您试图以您想要的方式显示的网页的 css 的人来说运气不好。

    【讨论】:

    • @OzanYukruk 我修改了网页本身(我可以访问它的代码。)通过 Webengine 来做到这一点 - 它有一种方法可以让你获得 html 源代码的纯文本。我猜正确的样式标签并加载修改后的页面
    • 哦,好吧,我只是请求我无权访问的网站。所以看来我无法隐藏滚动条
    • m_webView>page()>runJavaScript("document.body.style.overflow='hidden';");这成功了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多