2013-08-27 5 views
1

Ребята Я разрабатываю базовое приложение в BlackBerry 10 и хочу получить текст, который находится в TextField (в cpp). Я пытаюсь найти метод для этого, но не получить правильный. Может кто-нибудь, пожалуйста, скажите мне, как получить значение из TextField в cpp (не в qml) ???Разработка BlackBerry 10 TextField

+3

'TextField' наследует от' AbstractTextControl', который имеет метод 'const QString text()', который _ «Возвращает текущий текст для элемента управления». _ – Michael

ответ

0

У нас есть 3 части этой проблемы

сначала на в QML текст область и низ при нажатии отправить текстовое поле для работы в C++ функция

Второй части ваших C++

TextField { 
       id: n2 
      } 
    Button { 
      id: button 

      text: "send text" 
      onClicked: { 
       app.sendtext(n2.text) 
      } 
в вашем ApplicationUI получить этот текст

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

Третья и заключительная часть в вашем ApplicationUI.hu должны сделать эту функцию INVOKABLE, чтобы получить доступ к нему в QML

так и будет нужна эта линия

Q_INVOKABLE QString sendtext(QString txtarea); 
+0

Большое вам спасибо. Я пробовал это и его работу .... –

3

Ну, первое, что вам нужно сделать, это подвергать QML TextField на C++. Это делается с помощью объекта имя свойства ала:

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

большое вам спасибо. Я пробовал это и его работу ... –