关于我目前正在处理的Qt/MySQL++项目中的向量迭代方法,我有一个问题。
到目前为止,我一直在使用for循环来迭代它们,而且作为C++的初学者,我没有意识到普遍接受的方法是使用vector::iterator。我一直在努力想办法把它们转换成这种型号,但我有点卡住了。我的代码如下:
(连接器是我的自定义db连接类的实例)
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,这一切都运行得非常好!感谢所有花时间阅读这个问题的人!
发布于 2011-04-17 19:30:04
你不使用QSql有什么严重的原因吗?我认为QSqlQueryModel + QTableView可以不用任何向量和迭代器来解决您的问题。下面是一个小例子,来自Qt帮助:
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参考没有问题,它是非常详细的。
https://stackoverflow.com/questions/5695645
复制相似问题