我有2个文件夹。在文件夹中是1和1文件。 如何使用第二个文件更改一个文件的网址?
资产:
main.qml
import bb.cascades 1.4
import "Folder_01"
import "Folder_02"
TabbedPane {
Menu.definition: MenuDefinition {
actions: [
ActionItem {
onTriggered: {
sheet_01.open()
}
}
]
}
Tab {
id: tab_01
title: "Tab 01"
File_01 {
}
}
Tab {
enabled: false
}
attachedObjects: [
Sheet_01 {
id: sheet_01
}
]
}
File_01.qml
import bb.cascades 1.4
Page {
titleBar: TitleBar {
title: "File 01"
}
WebView {
id: file_01_WebView
}
}
Sheet_01.qml
import bb.cascades 1.4
import "asset:///Folder_01"
Sheet {
id: sheet_01
Page {
titleBar: TitleBar {
title: "Sheet 01"
dismissAction: ActionItem {
title: "Cancel"
onTriggered: {
sheet_01.close()
file_01_WebView.url = "http://google.com"
}
}
}
}
}
我在文件“ Sheet_01.qml”中出现错误“ file_01_WebView.url =” http://google.com“
答案 0 :(得分:0)
这里已经讨论了很多次,并且Qt文档对此非常清楚。
由于范围限制,Sheet_01
项对组件外部的元素一无所知。
遵循声明式的开发风格,组件应告知其状态更改,以便其他项目可以对此做出反应。例如:
main.qml
Item {
id: root
MyItem {
id: item1
}
MyItem {
id: item2
onSomeEvent: item1.doSomeAction();
}
}
MyItem.qml
Item {
id: item
signal someEvent();
function doSomeAction() {
console.log("action executed");
}
Component.onComplete: item.someEvent();
}
答案 1 :(得分:0)
我很高兴。我为其他人完成了此问题的用户手册。 这是一个功能过程。
// main.qml
import bb.cascades 1.4
import "Folder_01"
import "Folder_02"
TabbedPane {
Menu.definition: [
MenuDefinition {
actions: [
ActionItem {
onTriggered: {
sheet_01.open()
}
}
]
}
]
tabs: [
Tab {
title: "Tab 01"
File_01 {
id: file_01
}
},
Tab {
enabled: false
}
]
attachedObjects: [
Sheet_01 {
id: sheet_01
onSignal_From_Sheet: {
file_01.url = "http://google.cz"
}
}
]
}
// File_01.qml
import bb.cascades 1.4
Page {
id: page1
property alias url: file_01_WebView.url
titleBar: TitleBar {
title: "File 01"
}
WebView {
id: file_01_WebView
}
}
// Sheet_01.qml
import bb.cascades 1.4
Sheet {
id: sheet_01
signal signal_From_Sheet()
Page {
titleBar: TitleBar {
title: "Sheet 01"
dismissAction: ActionItem {
title: "Cancel"
onTriggered: {
signal_From_Sheet()
sheet_01.close()
}
}
}
}
}