1. 程式人生 > >QSqlTableModel呼叫rowCount函式返回值為0 解決辦法

QSqlTableModel呼叫rowCount函式返回值為0 解決辦法

先貼程式碼:

//公告模組
void SysKaoqi::showElse()
{
msgText->show();
model->setTable("message");
QModelIndex index;
int numRows = model->rowCount();
QString text;
for (int row = 0; row != numRows; ++ row)
{
index = model->index(row, 1,QModelIndex());
text += model->data(index, Qt::DisplayRole).toString();
text += "\r\n";//換行
}
msgText->setReadOnly(true);
msgText->setPlainText(text);
msgText->move(5, 100);
view->hide();
ui.signBox->hide();
}

後面經過除錯以及檢視官方文件才發現,他說model->index(row, column, parent).需要parent有效才可以返回值。

還有model->setTable()這個函式值設定了table名,並沒有和裡面的資料建立聯絡。所以還要加上一條語句model->select().