一起看代码来玩玩QT之18 database (last QSqlQueryModel 对数据库进行操作(只查不能改)QTableModel 可改,但是QSqlQueryModel也可以添加代理等功)

来源:互联网 发布:范冰冰洪金宝关系 知乎 编辑:程序博客网 时间:2024/05/20 19:48


Widget05.h

#ifndef WIDGET05_H#define WIDGET05_H#include <QWidget>#include <QSqlQueryModel>#include <QTableView>class Widget05 : public QWidget{    Q_OBJECTpublic:    explicit Widget05(QWidget *parent = 0);    QSqlQueryModel* _model;    QTableView *_view;signals:public slots:};#endif // WIDGET05_H

Widget05.cpp

#include "Widget05.h"#include <QSqlQuery>#include <QVBoxLayout>Widget05::Widget05(QWidget *parent) :    QWidget(parent){    _model = new QSqlQueryModel;    _view = new QTableView(this);    _view->setModel(_model);    _model->setQuery("select * from tuser");    _model->query();    QVBoxLayout* lay = new QVBoxLayout(this);    lay->addWidget(_view);}

main.cpp

#include <QApplication>#include "Widget05.h"#include <QSqlDatabase>#include <QSqlError>#include <QDebug>#include "Contact.h"int main(int argc, char*argv[]){    QApplication app(argc, argv);    /* QSQLITE QODBC QPLSQL */    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");    db.setHostName("127.0.0.1");    db.setUserName("root");    db.setPassword("iamxgl");    db.setDatabaseName("d0718");    bool bRet = db.open();    if(bRet == false)    {        qDebug() << "error open database" << db.lastError().text();        exit(0);    }    qDebug() << "open database success";    Widget05 w;    w.show();    return app.exec();}


1 0
原创粉丝点击