列出QTable - 选择动态

时间:2011-11-10 16:58:03

标签: c++ qt4 qt-creator

下午好。

我有一个问题。

我没有在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 个答案:

答案 0 :(得分:3)

不应该是

tableWidget->setRowCount(i+1);

如果您正在访问i行,则行计数必须至少为i+1,因为索引的行是从零开始的。