0

我正在使用的视图层次结构

QMainWindow >中央小部件> QVBoxLayout > QGraphicsView (800x600 固定) >从 QGraphicsScene > QGraphicsWebView (800x600)派生的类

当我加载一个 jQuery Mobile 驱动的 HTML 文件并使用页面之间的水平滑动过渡时,值window.outerWidth增长到 2400 像素。但是实际的页面宽度和 的值window.innerWidth仍然是 800。Web 视图然后在左右显示 800 像素宽的白条(水平滚动条也扩展到 2400 像素),中间是新的 jQM“页面”。在白条中单击鼠标右键不会显示 QtWebView 上下文菜单,但在中间单击鼠标右键有效。我启用了开发人员工具 [1],它告诉我 HTML、BODY 和 DATA-ROLE="page" 元素的正确宽度为 800 像素。

这适用于 Firefox 和 Chrome 等浏览器,所以我认为这是 Qt 的 web 视图实现中的一个错误或我错过的设置。问题似乎来自这样一个事实,即在转换期间滑入/滑出的 jQM 页面被考虑为宽度。为什么会window.outerWidth得到这样一个错误的值?请注意,Web 视图上的任何大小策略都不起作用。有什么想法我还能尝试吗?


[1] “检查”上下文菜单选项:

QWebSettings::globalSettings()->setAttribute(
    QWebSettings::DeveloperExtrasEnabled,
    true);
4

1 回答 1

0

通过升级到具有最新 WebKit 的 Qt 5 解决了这个问题。然而,它会带来新的麻烦,所以在切换到新发布的 5.0.0 之前,请先尝试其他网页是否正常工作。

于 2013-01-20T17:01:41.797 回答