Qtで構築しているプログラムを接続する際にいくつかの問題があります。そしてそれをやれば、データベースをテーブルウィジェットで動作させるにはどうしたらいいですか?Mysqlとqtを接続していますか?
私はおそらく、私がlibreofficeベースでデータベースを作った以外にどこから始めなければならないかを知らせるべきです。
Qtで構築しているプログラムを接続する際にいくつかの問題があります。そしてそれをやれば、データベースをテーブルウィジェットで動作させるにはどうしたらいいですか?Mysqlとqtを接続していますか?
私はおそらく、私がlibreofficeベースでデータベースを作った以外にどこから始めなければならないかを知らせるべきです。
Qtのヘルプシステムでは、例を見て、SQLに行って、テーブルモデルの例を選んでください。 QtでMySQLを使用するのは難しくありません。 (qtmysqlドライバを手作業でコンパイルしなければならないかもしれません;私のシステムでは/QtSources/4.7.3/src/plugins/sqldrivers/mysql/mysql.proにあります。qmake/make/make installを実行してください。
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);
。
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();
}
あなたは私たちに多くの情報を提供しているわけではありません。しかし、MySQLにQtを接続する方法を探しているなら、心配する必要はありません。これは既に[QSqlDatabase](http://doc.qt.nokia.com/latest/qsqldatabase.html)によって処理されています。 – Bart