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。

据此,你可以玩FocusScopes和focus property。

例如将ListView 的焦点设置为true,将委托放入FocusScopefocus: false。或者将WebEngineView的焦点设置为false。

希望这会有所帮助 =)

【讨论】:

以上是关于Qt/QML:WebEngineView 和 ScrollView的主要内容,如果未能解决你的问题,请参考以下文章

C++ 和 QML 中的 QT QML 项

QT/QML 数据模型

Qt/QML - 在 C++ 中注册 QML 类型会使 QML 代码不起作用

更改后,QT QML资源文件不会重新编译

是否可以为 android 编译 Qt+QML+OpenCV 应用程序

您如何注册相互依赖的 Qt QML Singleton?