Na verdade, foi muito simples. O que eu fiz foi que eu mudei o sinal onTriggered para: PopupUtils.open (dialog, mapContent) onde mapContent é o ID da webview. Agora a caixa de diálogo funciona como deveria!
Meu aplicativo usa guias e uma delas mostra uma página da Web usando o WebView. Agora, eu tenho uma barra de ferramentas com um botão de ação que eu quero mostrar um diálogo - mas não é ir.
Em vez disso, recebo esta mensagem de erro ao pressionar o botão de ação:
file:///usr/lib/x86_64-linux-gnu/qt5/qml/Ubuntu/Components/Popups/popupUtils.js:50: Error: Cannot assign QObject* to QQuickItem*
A exibição em uma guia sem um WebView trabalha o fint com o mesmo Component e Dialog. Por que isso não funciona e o que devo fazer para tornar isso possível? Eu realmente quero esse diálogo lá.
Aqui está parte do meu código:
// Change coordinates dialog
Component {
id: dialog
Dialog {
id: dialogue
title: "Save file"
text: "Are you sure that you want to save this file?"
// X
TextField {
id: xCoo
width: units.gu(20)
placeholderText: 'X'
text: xCurrent
}
// Y
TextField {
id: yCoo
width: units.gu(20)
placeholderText: 'Y'
text: yCurrent
}
Button {
id: 'goButton'
text: 'Go'
color: 'green'
onClicked: {
xCurrent = xCoo.text
yCurrent = yCoo.text
PopupUtils.close(cooDialog)
}
}
}
}
WebView {
id: mapContent
anchors.fill: parent
url: "http://webpage.html"
smooth: true
scale: 1
visible: true
}
E a ação:
// Change coordinates
Action {
id: coordinateAction
objectName: "action2"
iconSource: Qt.resolvedUrl("toolbarIcon.png")
text: i18n.tr("Coordinates")
onTriggered: {
PopupUtils.open(dialog, coordinateAction)
}
}
Na verdade, foi muito simples. O que eu fiz foi que eu mudei o sinal onTriggered para: PopupUtils.open (dialog, mapContent) onde mapContent é o ID da webview. Agora a caixa de diálogo funciona como deveria!