首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt/MySQL++/向量迭代问题

Qt/MySQL++/向量迭代问题
EN

Stack Overflow用户
提问于 2011-04-17 18:50:56
回答 1查看 322关注 0票数 0

关于我目前正在处理的Qt/MySQL++项目中的向量迭代方法,我有一个问题。

到目前为止,我一直在使用for循环来迭代它们,而且作为C++的初学者,我没有意识到普遍接受的方法是使用vector::iterator。我一直在努力想办法把它们转换成这种型号,但我有点卡住了。我的代码如下:

(连接器是我的自定义db连接类的实例)

代码语言:javascript
复制
mysqlpp::StoreQueryResult res = connector->getResults(searchTerm);
  int stock = res.field_num("stock");
  if(res.num_rows() > 0)
  {
    tblStock->setRowCount(res.num_rows());
    for(size_t i = 0; i < res.num_rows(); i++)
    {
      tblStock->setItem(i, 0,
                        new QTableWidgetItem(QString(res[i][stock].c_str())));
    }
  }

我的问题是,我无法找到一种只使用向量::迭代器而不是增量size_t的方法,因为我使用i来定义设置QTableWidgetItem的位置。不过,同时使用这两种方法绝对是荒谬的。

有什么想法吗?

非常感谢任何人和每个人!

X-T

更新:将我的程序更改为使用QSql对象和tableView,而不是tableWidget,这一切都运行得非常好!感谢所有花时间阅读这个问题的人!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-17 19:30:04

你不使用QSql有什么严重的原因吗?我认为QSqlQueryModel + QTableView可以不用任何向量和迭代器来解决您的问题。下面是一个小例子,来自Qt帮助:

代码语言:javascript
复制
QSqlQueryModel *model = new QSqlQueryModel;  
model->setQuery("SELECT name, salary FROM employee");  
model->setHeaderData(0, Qt::Horizontal, tr("Name"));    
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));  
QTableView *view = new QTableView;  
view->setModel(model);  // binding model to view
view->show();

您可能需要阅读一些关于Qt模型/视图类和QSql的内容,才能完全理解这个示例,但这是值得一读的。我认为你阅读Qt参考没有问题,它是非常详细的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5695645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档