我正在使用的视图层次结构
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);