下午好。
我有一个问题。
我没有在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
,因为索引的行是从零开始的。