2014-02-21 39 views
1

我已經使用TabView編寫了一個QT Quick程序。當我點擊Tabview中的botton b1時,程序應調用show_text()並打印b1的文本,但它會打印「ReferenceError:b1未定義」。任何建議將不勝感激,謝謝。qt中的引用錯誤快速控件tabview

import QtQuick 2.2 
import QtQuick.Controls 1.1 
import QtQuick.Window 2.1 



ApplicationWindow { 
    function show_text() { 
     console.log(b1.text) 
    } 

    TabView { 
     id: tv 
     Tab { 
      id: tab1 
      Button{ 
       id: b1 
       text:"b1's text" 
       onClicked: { 
        //console.log(b1.text) 
        show_text() 
       } 
      } 
     } 
    } 
} 

回答

0

您可以通過此示例訪問您的對象。

ApplicationWindow { 
function show_text() { 
    console.log(tv.b1Text); 
} 

TabView { 
    id: tv 
    property alias b1Text: b1.text 
    Tab { 
     id: tab1 
     Button{ 
      id: b1 
      text:"b1's text" 
      onClicked: { 
       //console.log(b1.text) 
       show_text() 
      } 
     } 
    } 
} 

}

+1

使用Qt 5.7,我得到'無效的別名參考。無法找到ID「b1」' – ony

1

傳遞對象作爲參數

import QtQuick 2.2 
import QtQuick.Controls 1.1 
import QtQuick.Window 2.1 

ApplicationWindow { 
    function show_text(myobject) { 
     console.log(myobject.text) 
    } 

    TabView { 
     id: tv 
     Tab { 
      id: tab1 
      Button{ 
       id: b1 
       text: "b1's text" 
       onClicked: { 
        show_text(b1) 
       } 
      } 
     } 
    } 
}