从同一选项卡窗格中的不同 qml 选项卡访问属性

Posted

技术标签:

【中文标题】从同一选项卡窗格中的不同 qml 选项卡访问属性【英文标题】:Access properties from different qml tabs within same tabbedpane 【发布时间】:2014-05-29 23:11:26 【问题描述】:

我的 main.qml 包含一个选项卡窗格,其中有两个选项卡: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"
        
    


【问题讨论】:

【参考方案1】:

我想使用标签实际上更简单,我找到了自己的解决方案。

我注意到,momentics 无法检测到“thepane”是可链接的,并且在从其中一个选项卡中键入它时不会提示其名称。此外,带有冒号的属性将自动绑定其后的值,如: 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"
        
    


【讨论】:

【参考方案2】:

感谢您的想法。 我更改了代码。现在对我来说更好了,也许对其他人来说更好:)

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"
            
        
    

【讨论】:

以上是关于从同一选项卡窗格中的不同 qml 选项卡访问属性的主要内容,如果未能解决你的问题,请参考以下文章

SPFX Webpart 属性窗格在 MS Teams 个人选项卡中不可见

使用关闭按钮切换引导选项卡

在拆分窗格模式下更改ICN contentViewer的选项卡标题?

基于单选按钮选择的访问选项卡控件

Excel常用操作1

每当我移动到不同的选项卡屏幕时,它都会显示错误“不支持访问路由对象的状态属性”