#include <QMessageBox>
#include <QTableView>
#include <QSqlRelationalDelegate>
#include <QDataWidgetMapper>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "testdata");
db.setDatabaseName("test;");
if(!db.open())
{
QMessageBox::critical(0,QObject::tr("database error"),db.lastError().text());
}
QSqlTableModel* mode = new QSqlTableModel(0,db);
mode->setTable("sudent");
QTableView* view = new
QTableView;
mode->select();
view->setModel(mode);
MainWindow w;
w.setCentralWidget(view);
w.show();
return a.exec();
}
可以显示如图
可是把
QSqlTableModel* mode = new QSqlTableModel(0,db);
换成:
QSqlTableModel* mode = new QSqlTableModel;
就显示不出来了
这是为什么啊
QSqlTableModel构造函数不是会传递默认的
数据库连接的嘛
[ 此帖被tangxunmin在2010-09-11 15:10重新编辑 ]