整理一下,还是贴代码吧,呵呵~~
+++++++++++++database.h+++++++++++++++++
#ifndef DATABASE_H
#define DATABASE_H
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QObject>
#include <QMessageBox>
#include <QSqlError>
static bool createConnection()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.dat");
if(!db.open())
{
QMessageBox::warning(0,QObject::tr("Database Error"),db.lastError().text());
return false;
}
QSqlQuery query;
query.exec(QObject::tr("create table Test(id int primary key,content vchar)"));
query.exec(QObject::tr("insert into Test values(1,'测试测试测试测试测试测试')"));
return true;
}
#endif // DATABASE_H
++++++++++++++widget.h++++++++++++++++++
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QSqlTableModel>
#include <QDataWidgetMapper>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
QSqlTableModel *model;
QDataWidgetMapper *mapper;
};
#endif // WIDGET_H
+++++++++++widget.cpp+++++++++++++
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QTextEdit>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
model=new QSqlTableModel(this);
model->setTable("Test");
model->setHeaderData(0,Qt::Horizontal,QObject::tr("编号"));
model->setHeaderData(1,Qt::Horizontal,QObject::tr("内容"));
model->select();
ui->tableView->setModel(model);
ui->tableView->resizeColumnsToContents();
mapper=new QDataWidgetMapper(this);
mapper->setModel(model);
mapper->addMapping(ui->lineEdit,1);
mapper->toFirst();
}
Widget::~Widget()
{
delete ui;
}
++++++++++++main.cpp+++++++++++++++
#include <QtGui/QApplication>
#include "widget.h"
#include "database.h"
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
if(!createConnection())
return 0;
Widget w;
w.show();
return a.exec();
}