QTableView结合QSqlQueryModel连接MySQL数据库并显示数据

一、Qt连接MySQL数据库
将mysql文件lib目录下的libmysql.lib和libmysqld.dll复制到Qt5.9中的mingw53_32的bin文件下。
在pro文件中添加 QT +=sql
打开数据库:

   QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//MySQL数据库
       db.setHostName("localhost");//主机名
       db.setDatabaseName("netbarwork");//数据库名
       db.setUserName("root");//连接用户名
       db.setPort(3306);//端口号
       db.setPassword("123456");//连接密码
       if(!db.open())
       {
          QMessageBox::warning(NULL,"Error","数据库打开失败,请重试!!!");
       }
       db.close();

Model和View绑定

    QSqlQueryModel *model = new QSqlQueryModel(this);
   model->setQuery(QString("select * from user"));
    model->removeColumn(2);  //这是指不显示第几列
    ui->tableView->setModel(model);//设置模型
   //设置表头
    model->setHeaderData(0, Qt::Horizontal, tr("account"));
    model->setHeaderData(1, Qt::Horizontal, tr("password"));
    model->setHeaderData(2, Qt::Horizontal, tr("name "));
    model->setHeaderData(3, Qt::Horizontal, tr("classification"));
   //设置列自适应宽度
    QHeaderView* headerView = ui->tableView->horizontalHeader();
    headerView->setSectionResizeMode(QHeaderView::Stretch);

    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
    ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//是否可以编辑
   ui->tableView->setWindowTitle("查询完毕");

你可能感兴趣的:(Qt)