【问题标题】:Connecting Mysql and qt?连接Mysql和qt?
【发布时间】:2011-08-06 18:13:17
【问题描述】:

我在将正在构建的程序与 qt 连接时遇到了一些困难。一旦我这样做了,我如何让数据库与表格小部件一起工作?

我应该让你知道我不知道从哪里开始,除了我用 libreoffice base 制作了数据库。

【问题讨论】:

  • 你没有给我们太多信息。但是,如果您正在寻找如何将 Qt 连接到 MySQL,则无需担心。这已由QSqlDatabase 处理

标签: mysql database qt ubuntu connection


【解决方案1】:

Qt 提供了模型/视图框架,它是一个非常灵活的工具,用于在表格、树或列表中呈现数据。所以你需要使用的模型是QSqlTableModel

首先创建一个QSqlDatabase实例,并连接数据库

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("my_database");
db.setUserName("username");
db.setPassword("password");
if(!db.open())
    QMessageBox::warning(this,"Error","Unable to connect to the database");

然后创建模型

QSqlTableModel *model = new QSqlTableModel(parent,db);
model->setTable("students");
model->select(); //< fetch data

最后告诉表格显示来自这个模型的数据

QTableView *table = new QTableView;
table->setModel(model);

【讨论】:

    【解决方案2】:

    在 Qt 的帮助系统下,查看示例,转到 SQL,然后选择表模型示例。您会发现将 MySQL 与 Qt 一起使用并不难。 (您可能必须手动编译 qtmysql 驱动程序;在我的系统上,它位于 /QtSources/4.7.3/src/plugins/sqldrivers/mysql/mysql.pro 中。只需 qmake/make/make install。祝你好运并享受!

    【讨论】:

      【解决方案3】:
      1. 将 QT +=Core sql 添加到 .pro 中
      2. 下载libmysq.dll并添加到Qt-> Qt 5.3.0 -> mingw482_32 -> Plugins -> sqldrivers
      3. 创建新的 Qt 控制台文件
      4. 将此行添加到 main.cpp

      .

      int main(int argc, char *argv[])
      {
      QCoreApplication a(argc, argv);
      
      
      QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
      db.setHostName("localhost");
      db.setUserName("root");
      db.setPassword("");
      db.setDatabaseName("sim");
      
      if(db.open())
      {
          qDebug() << "connected " << db.hostName();
      }else{
      qDebug() << "Connection FAILED.";
      
      }
      return a.exec();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-13
        • 2016-10-08
        • 2021-03-13
        • 1970-01-01
        相关资源
        最近更新 更多