【问题标题】:Qt/QML: WebEngineView and ScrollViewQt/QML:WebEngineView 和 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 我曾多次想过要走同样的路,尽管我非常努力地避免它。呃。

标签: c++ qt qml qtwebengine


【解决方案1】:

我对 Qt Quick 的了解是它有 input focus

据此,你可以玩FocusScopes和focus property

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

希望这会有所帮助 =)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多