List QTable - Выбрать динамический - PullRequest
0 голосов
/ 10 ноября 2011

Добрый день

У меня есть вопрос.

Я не получаю данные в списке Qtable.

И не отображается никаких ошибок.

Мой код:

#include <QtSql>
#include "listuser.h"
#include "conex.h"


my_listuser::my_listuser(QDialog *parent)
{
   setupUi(this); // this sets up GUI
   connect(pushButton_list, SIGNAL(clicked()), this, SLOT(list_user()));

}


void my_listuser::list_user()
{
         int i=0;

         conex();
         colum_horzHeaders();

         QSqlQuery query;
         query.exec("SELECT name_user FROM user");

         while(query.next()) {
             QString name_user = query.value(0).toString();
             tableWidget->setRowCount(i);
             QTableWidgetItem *item = new QTableWidgetItem(QString("%1").arg(name_user));
             tableWidget->setItem(i,0,item);
             i++;
         }
}

void my_listuser::colum_horzHeaders()
{
    tableWidget->setColumnCount(1);
    QStringList horzHeaders;
    horzHeaders << "Name";
    tableWidget->setHorizontalHeaderLabels(horzHeaders);
}

Я думаю, что здесь ошибка ...

 while(query.next()) {
     QString name_user = query.value(0).toString();
     tableWidget->setRowCount(i);
     QTableWidgetItem *item = new QTableWidgetItem(QString("%1").arg(name_user));
     tableWidget->setItem(i,0,item);
     i++;
 }

Я был бы очень признателен за помощь.Спасибо.

1 Ответ

3 голосов
/ 10 ноября 2011

Не должно ли быть

tableWidget->setRowCount(i+1);

Если вы обращаетесь к i-й строке, то количество строк должно быть не менее i+1, так как индексированные строки начинаются с нуля.

...