向下拉bb 10级联添加元素



我在Qml文件中有一个下拉菜单,比如。。。

 DropDown {
                enabled: true
                // text only
                Option {
                    text: "EUR/USD"
                }
            }

我的数据库基础读取功能就像。。。QList数据库操作::readRecords(QString表名){

QList<QString> sym_ID_List;
  // 1. Get the local DB connection. Note, called database()
  //    Will automatically open a connection to the database
     QSqlDatabase database = QSqlDatabase::database(); // opens the default database.
  // 2. Create a query to search for the records
     QSqlQuery query(database);
     const QString sqlQuery = "SELECT * FROM "+tableName;
     if (query.exec(sqlQuery)) {
         // Get the field indexes. We know the order of the fields, and could skip this step.
         // However this will still work if the fi changeldse order in the query string.
         const int customerIDField = query.record().indexOf("SymbolId");
         // 3. Start navigating through the records by calling the 'next' function.
        //     When there are no longer any records it will return false.
         int recordsRead = 0;
         while (query.next()) {
             // 4. Access the data (stored in the query) via the field indexes
             //    and add the data to the model.
                sym_ID_List.insert(recordsRead,query.value(1).toString());

             recordsRead++;
         }
         qDebug() << "Read " << recordsRead << " records succeeded";
         if (recordsRead == 0) {
            // alert(tr("The customer table is empty."));
         }
     } else {
        // alert(tr("Read records failed: %1").arg(query.lastError().text()));
     }
     // 6. Optionally close the database connection if we no longer plan to use it
     database.close();
     return sym_ID_List;

}

曾经。。。此方法即Executed,它返回"Qlist"中的所有符号Id。现在我的问题是如何将这些"Qlist"元素动态添加到下拉列表中?

如何实现,

谢谢,

好吧,您需要做的第一件事是将QML Dropdown公开给C++。这是通过对象名称属性ala:完成的

DropDown {
    objectName: "myDropDown"
    Option {
        text: "EUR/USD"
    }
}

接下来,从您的C++:中找到这个孩子

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

最后,添加QList:中的选项

foreach (QString string, list) {
    dropDown->add(Option::create().text(list));
}

最新更新