私はQtに非常に慣れていません。また、Qt を使用して MySQL データベース接続を作成し、テーブル情報 QSqlTableModel を表示しようとしています。ここに私のコードがあります:
1) .pro ファイル
QT += core gui sql
TARGET = sri_qtdb
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
2) .h ファイル
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QtSql>
#include <QtGui>
#include <QtCore>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent *e);
private:
Ui::MainWindow *ui;
QSqlDatabase db;
QSqlTableModel *model;
//QTableWidget *table;
};
#endif // MAINWINDOW_H
3) .cpp ファイル
a) main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
b) メインウィンドウ.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setCentralWidget(ui->tableView);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("user");
db.setUserName("root");
db.setPassword("*********");
if(!db.open()){ qDebug()<< "Failed"; }
else
{
model = new QSqlTableModel(this);
model->setTable("new_joiners");
model->select();
ui->tableView->setModel(model);
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
利用可能なドライバー: QSQLITE QMYSQL3 QMYSQL
私の出力は常に「失敗」です。私は何を間違っていますか?