Qt / MySQL ++ / вопрос итерации вектора - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть вопрос относительно моего метода итераций вектора в проекте Qt / MySQL ++, над которым я сейчас работаю.

До сих пор я использовал циклы for для их итерации и, будучи новичком в C ++, не понимал, что общепринятый метод - это использование vector :: iterator. Я пытался найти способ конвертировать их в эту модель, но я немного застрял. Мой код выглядит следующим образом:

(соединитель является экземпляром моего пользовательского класса подключения БД)

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 &lt res.num_rows(); i++)
    {
      tblStock->setItem(i, 0,
                        new QTableWidgetItem(QString(res[i][stock].c_str())));
    }
  }

Моя проблема в том, что я не вижу способа просто использовать vector :: iterator вместо возрастающего size_t, учитывая, что я использую i, чтобы определить, где установить QTableWidgetItem. Хотя определенно кажется абсурдным использовать оба.

Есть идеи?

Большое спасибо заранее всем и каждому!

Х-Т

ОБНОВЛЕНИЕ: Моя программа изменила использование объектов QSql и tableView вместо tableWidget, и все это прекрасно работает! Спасибо всем, кто нашел время, чтобы прочитать вопрос!

1 Ответ

1 голос
/ 17 апреля 2011

Есть ли серьезная причина, по которой вы не используете 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 Reference, он очень подробный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...