QML Webview使用x-offset呈现SELECT元素

时间:2011-08-18 10:24:48

标签: qt webview qml

我目前正在实现一个WebView,其中包含一个页面上带有select表单元素的网页。每当我点击选择框时,包含可能值的对话框就会显示在页面外。

对话框不会在WebView或父级中居中。在模拟器上,它显示在网页上的下拉框下方,但是太宽而无法放在屏幕上(隐藏滚动条),而在设备上它显示在屏幕的左下角。

有没有人有这方面的经验?我只是使用QML WebView项目,它不在Flickable中(我最初认为这是问题)

背景和调查

渲染this page的两种方法:

使用Qt QWebview并在模拟器上运行的简单项目提供了:

enter image description here

注意:选择菜单是窗口的整个宽度。

使用以下QML的简单项目:

import QtQuick 1.0
import QtWebKit 1.0

Rectangle {
    anchors.fill: parent

    WebView {
            anchors.fill: parent
            url: "http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_option"
    }
}

将产生以下结果:

Webview from QML

我在这里做错了什么?我需要对QML做些什么来使其正确呈现菜单?

1 个答案:

答案 0 :(得分:1)

确定。这感觉不对。

我无法相信我的主板上有一个故事,“作为Qt用户,我可以从长列表中选择值。”

所以我的解决方案是使用evaluateJavascript将一大块Javascript注入Webview,它会抓取DOM寻找SELECT元素。

单击选择后,使用选项列表调出QML,然后渲染选择框的QML版本。

回程旅行更简单,但同样没有吸引力。

我尝试在select元素中添加了一个单击或点击侦听器,但是DOM API未完成(将尝试查找规范链接),我尝试的任何内容都不会触发处理程序。最后,我隐藏了它,并在其位置添加了一个按钮。

必须有更好的方法。