Qt/QML:WebEngineView 和 ScrollView
Posted
技术标签:
【中文标题】Qt/QML:WebEngineView 和 ScrollView【英文标题】:Qt/QML: WebEngineView and ScrollView 【发布时间】:2017-03-24 01:26:59 【问题描述】:我有一个桌面应用程序,其中有一个ScrollView
,其中包含一个ListView
,其中每个代表都包含多个小部件,包括一个WebEngineView
:
ScrollView
id: myScrollView
anchors.fill: parent;
ListView
id: myListView
delegate: Item
Rectangle
Text ...
Text ...
// other stuff
WebEngineView
id: myWebEngineView
Component.onCompleted:
loadhtml(model.modelData.someHTMLData);
我遇到的问题是滚动。在 Mac 上,如果我使用触摸板滚动,ListView
仅在鼠标悬停在非WebEngineView
小部件之一上时才会滚动。
我怀疑WebEngineView
小部件正在捕获鼠标消息,但我找不到阻止这种情况发生的方法。我该怎么做?
【问题讨论】:
前段时间我遇到了类似的问题,最终放弃了尝试在列表中包含多个WebEngineViews
,而是完全用 HTML/javascript 重写了ListView
。
@MrEricSir 我曾多次想过要走同样的路,尽管我非常努力地避免它。呃。
【参考方案1】:
我对 Qt Quick 的了解是它有 input focus。
据此,你可以玩FocusScope
s和focus property。
例如将ListView
的焦点设置为true,将委托放入FocusScope
和focus: false
。或者将WebEngineView
的焦点设置为false。
希望这会有所帮助 =)
【讨论】:
以上是关于Qt/QML:WebEngineView 和 ScrollView的主要内容,如果未能解决你的问题,请参考以下文章
Qt/QML - 在 C++ 中注册 QML 类型会使 QML 代码不起作用