QT MVC 模式

来源:互联网 发布:中日军机对峙知乎 编辑:程序博客网 时间:2024/05/21 07:56

QT提供Model-Based的4个控件,分别是List View,Tree View,Table View,Column View.

我用了一个Table View来演示MVC。


    
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("demo");
    db.setUserName("root");
    db.setPassword("xxxx");
    db.setPort(3306);
    bool ok = db.open();
    if(!ok)
    {
        qDebug()<<"open db fail";
    }
    static QSqlQueryModel *model = new QSqlQueryModel(ui->tableView);
    model->setQuery(QString("select * from person;"));
    model->setHeaderData(0,Qt::Horizontal,QObject::tr("编号"));
    model->setHeaderData(1,Qt::Horizontal,QObject::tr("姓名"));
    model->setHeaderData(2,Qt::Horizontal,QObject::tr("年龄"));
    ui->tableView->setModel(model);

QSqlQueryModel class provides a read-only data model for SQL result sets

意思是说QSqlQueryMode  为SQL 结果集提供了一个只读的数据模型,其继承自QAbstractTableModel.
QSqlQueryModel is a high-level interface for executing SQL statements and traversing the result set.

下面是help里面的例子:

 

     QSqlQueryModel *model = new QSqlQueryModel;
     model->setQuery("SELECT name, salary FROM employee");
     model->setHeaderData(0, Qt::Horizontal, tr("Name"));
     model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
       QTableView *view = new QTableView;
     view->setModel(model);
     view->show();

0 0
原创粉丝点击