Странная ошибка в qml и окиси

Я сделал приложение с этим исходным кодом: http://pastebin.com/zMwtusZJ Однако, когда я пытаюсь запустить приложение webview вместо этого, становится черным и не загружает веб-страницу.

Вот вывод катастрофического отказа: http://pastebin.com/AjDjadEP

Когда я определяю ширину для webview элемента с чем-то как-> width:units.gu (160) Затем он работает просто великолепно. Однако, если возможный я предпочел бы, чтобы это использовало полную высоту родителя.

Вот фиксированный и улучшенный источник: http://pastebin.com/6UyMF9Tb

0
задан 3 December 2014 в 12:16

1 ответ

Я был неспособен воспроизвести Вашу проблему, но когда я выполнил Ваш образец, я не видел webview вообще. Это смотрит на меня, что Ваше расположение является очень запутанным. У Вас есть Столбец, содержащий единственную строку, которая содержит другой Столбец. Это действительно не имеет смысла. Это затенено неправильным добавлением отступа, таким образом, первая еда на дом, очистите свой код перед регистрацией его. Мало того, что это поможет тем, которые пытаются помочь Вам, можно обнаружить проблему в процессе.

Вы смешиваете расположение явной калибровкой и привязкой. Например, Ваш внешний столбец имеет и набор ширины явно и неявно через атрибут anchor.fill. Вы знаете, какой победит, если они не согласятся? Я уверенный не делаю.

Вдоль подобной строки, Вы устанавливаете ширину веб-представления, чтобы быть шириной его родителя, строки. Но строка должна быть достаточно широкой для содержания всех ее детей, таким образом, это должно быть более широко, чем веб-представление. Как делает твердость QML это? Я не знаю. Я нахожу строку и Столбец хорошими для расположения многих Элементов известного размера, но не для содержания элементов, которые должны занять остающееся место. Если это - то, что Вы хотите, сделайте это явно или через привязки.

Ниже, я переписал Ваш пример кода в форму, которая работает на меня. Я не знаю, что это было расположением, за которое Вы пробовали, но надо надеяться это достаточно ясно для Вас перестроить его, как Вы считаете целесообразным.

я принял решение поместить запись URL и кнопки подряд, так как все они имеют фиксированный размер. Веб-представление должно поднять остальную часть пространства, таким образом, я привязываю его вершину к нижней части строки (с 1 gu полем) и его нижней части к концу страницы. Установка его ширины к Странице width гарантирует, что это достигает полностью через, хотя это, возможно, также было выполнено с привязками.

import QtQuick 2.0
import Ubuntu.Components 1.1
import com.canonical.Oxide 1.0
import QtQuick.Window 2.0

MainView {
    applicationName: "com.ubuntu.developer.mkamenjak77.bugapp"
    useDeprecatedToolbar: false
    width: Screen.width/2
    height: Screen.height/2

    Page {
        Row{
            id: controlRow

            TextField {
                id: textfield
                text: "http://google.com"
                width: units.gu(40)

                Keys.onReturnPressed: {
                    if (textfield.text.substring(0, 7) != "http://")
                        textfield.text = "http://" + textfield.text;
                    webview.url = textfield.text
                }
            }

            Button {
                width: units.gu(10)
                text: i18n.tr("Osvježi")
                onClicked: webview.reload()
            }

            Button {
                width: units.gu(10)
                text: i18n.tr("Naprijed")
                onClicked: webview.goForward()
            }

            Button {
                width: units.gu(10)
                text: i18n.tr("Natrag")
                onClicked: webview.goBack()
            }
        }

        WebView {
            id: webview
            width: parent.width
            anchors.top: controlRow.bottom
            anchors.topMargin: units.gu(1)
            anchors.bottom: parent.bottom

            Component.onCompleted: {
                url = textfield.text
            }
        }
    }
}
0
ответ дан 6 October 2019 в 08:59

Другие вопросы по тегам:

Похожие вопросы: