2011-11-10 64 views
0

下午好列表QTable - 选择动态

我有一个问题。

我没有收到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++; 
} 

我会的帮助非常感激。谢谢。

+0

什么坏了?你期待我们解决什么问题?除非你告诉我们,否则我们没有魔杖可以知道。你有机会到霍格沃茨吗? –

回答

3

它不应该是

tableWidget->setRowCount(i+1); 

如果您正在访问i个行,则行数必须至少i+1,作为indexd是从零开始的行。

+0

谢谢,现在正在工作。谢谢:D – user628298