我的main.qml包含tabbedpane,其中有两个标签:tab1和tab2。 我希望能够将文本从一个标签更改为另一个标签。
如果我对导航窗格做同样的事情,那么它可以工作,但显然没有标签。有什么方法可以在他们之间分享信息吗?我已尝试用c ++中的信号但它也没有工作(我猜它不知道实例?)。
任何建议都表示赞赏。
main.qml:
TabbedPane {
Tab {
Tab1 {
}
}
Tab {
Tab2 {
}
}
attachedObjects: [
Tab1 {
id: tab1
},
Tab2 {
id: tab2
}
]
}
Tab1.qml:
Page {
property alias labeltab1: labeltab1
Container {
Label {
id: labeltab1
text: "label tab1"
}
Button {
id: buttontab1
text: "tab1"
onClicked: {
tab2.labeltab2.text = "This is coming from tab1"
}
}
}
}
Tab2.qml:
Page {
property alias labeltab2: labeltab2
Container {
Label {
id: labeltab2
text: "Label tab2"
}
Button {
id: buttontab2
text: "tab2"
onClicked: {
tab1.labeltab1.text = "This is coming from tab2"
}
}
}
}
答案 0 :(得分:2)
我猜它实际上比标签更简单,我找到了自己的解决方案。
我注意到,“thepane”无法检测到“thepane”是否可链接,并且在从其中一个标签中输入时不会显示其名称。此外,带冒号的属性将自动绑定值afterit,如:text:thepane.mystring
单击按钮时,它会更改mystring的值,从而更改两个标签文本。
main.qml
TabbedPane {
id: thepane
property string mystring
Tab {
Tab1 {
}
}
Tab {
Tab2 {
}
}
}
Tab1.qml
Page {
Container {
Label {
id: labeltab1
text: thepane.mystring
}
Button {
id: buttontab1
text: "tab1"
onClicked: {
thepane.mystring = "This is coming form tab1"
}
}
}
}
Tab2.qml
Page {
Container {
Label {
id: labeltab2
text: thepane.mystring
}
Button {
id: buttontab2
text: "tab2"
onClicked: {
thepane.mystring = "This is coming from tab2"
}
}
}
}
答案 1 :(得分:0)
谢谢您的想法。 我更改了代码。现在对我来说更好,也许对其他人也更好:)
main.qml
TabbedPane {
id: main_Pane
property string action_1
property string action_2
Tab {
Tab1 {}
}
Tab {
Tab2 {}
}
}
Tab1.qml
Page {
Container {
Label {
text: main_Pane.action_1
}
Button {
text: "Button 1"
onClicked: {
main_Pane.action_2 = "This is action form Tab1"
}
}
}
}
Tab2.qml
Page {
Container {
Label {
text: main_Pane.action_2
}
Button {
text: "Button 2"
onClicked: {
main_Pane.action_1 = "This is action from Tab2"
}
}
}
}