2013-08-27 47 views
1

夥計們我正在開發BlackBerry 10中的基本應用程序,並且我想要獲取TextField中的文本(在cpp中)。我試圖找到方法,但沒有得到正確的。所以任何人都可以請告訴我如何從cpp(而不是qml)中的TextField中獲取值?BlackBerry 10 development- TextField

+3

'TextField'繼承自'AbstractTextControl',它有一個'const QString text()'方法,它返回當前控件的文本。「_ – Michael

回答

0

我們在設爲Qml 3個部分在這個問題

首先點擊發送文本區域在C++

TextField { 
       id: n2 
      } 
    Button { 
      id: button 

      text: "send text" 
      onClicked: { 
       app.sendtext(n2.text) 
      } 

的第二部分你的C++函數的功能在你的ApplicationUI當你的文本區域和底部的接收本文

QString ApplicationUI::sendtext(QString txtarea) 
    { 
    QString text = txtarea; 
    return text; 
    } 

第三和最後一部分在ApplicationUI.hu必須使該功能可調用來訪問它設爲Qml

,這樣你們將需要此行

Q_INVOKABLE QString sendtext(QString txtarea); 
+0

非常感謝你的朋友。我試過這個和它的工作.... –

3

那麼,你需要做的第一件事是暴露你的QML TextField對C++。這與對象的名稱屬性ALA完成:

TextField { 
    objectName: "myTextField" 
    ... 
} 

接下來,從C++發現這個孩子:

QmlDocument *qml = QmlDocument::create("asset:///my.qml"); 
Container *root = qml->createRootObject<bb::cascades::Container>(); //or whatever the root control is 
TextField *textField = root->findChild<TextField*>("myTextField"); 

從此,只需使用textField->文本()。

+0

非常感謝你的朋友。我試過這個和它的工作.... –