1

これが私のコードですMainWindow

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QSqlDatabase connection = QSqlDatabase::addDatabase("QMYSQL");
    connection.setHostName("localhost");
    connection.setDatabaseName("dbname");
    connection.setUserName("username");
    connection.setPassword("Temp");



    QTableView *view = new QTableView(this);

    view->setMinimumSize(200, 200);

    QSqlTableModel *model = new QSqlTableModel(this, connection);
    model->setTable("users");
    qDebug()  << model->columnCount() << model->rowCount();
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->select();
    model->removeColumn(0); // don't show the ID



    view->setModel(model);

    view->show();

    this->setWindowTitle("Showing Things");
}

私のmain.cpp

#include "mainwindow.h"

int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

私のデータベースにはデータが含まれていることを知っています。基本的には、ここの詳細な説明の例に従ってます

これは、コンパイルして実行したときに得られるものです。

灘

私がこのようなものを期待するとき:

私が欲しいもの

わかりません

私は何が間違っているのですか?

4

1 に答える 1

3

投稿したコードによると、データベース接続を開いていません。

QSqlTableModelあなたのためにそれを開くことはありません。

于 2012-04-11T21:14:10.090 に答える