QSqlTableModel in Konstruktor funktioniert nicht.
Verfasst: 19. Juli 2011 07:52
Hallo, ich möchte über ein QSqlTableModel den Inhalt einer Datenbanktabelle über ein QTableView anzeigen. Soweit funktioniert auch alles. Nur wenn ich den Zeiger auf ein QSqlTaboleModel in den Konstruktor von MainWindow lege, das QTableView, aber erst später mit dem Model verbinde, wird nichts angezeigt. Erzeuge ich den Zeiger allerdings unmittelbar in der Funktion, in welcher ich das TableView mit dem Moel verbinde funktioniert es. Und ich kann mir einfach nicht erklären, warum.
Header-Datei
cpp-Datei
Header-Datei
Code: Alles auswählen
#include <QSqlTableModel>
#include <QMainWindow>
#include "SQL/DatabaseManager.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow( QWidget *parent = 0 );
~MainWindow();
private:
Ui::MainWindow *ui;
DatabaseManager *databaseManager;
QSqlTableModel *model;
void initializeDatabase();
};Code: Alles auswählen
#include <QDebug>
#include "MainWindow.h"
#include "ui_MainWindow.h"
MainWindow::MainWindow( QWidget *parent ) : QMainWindow( parent ), ui( new Ui::MainWindow ) {
ui->setupUi( this );
databaseManager = new DatabaseManager( this );
// model = new QSqlTableModel(this); // Funktioniert nicht
initializeDatabase();
}
MainWindow::~MainWindow() {
delete ui;
}
void MainWindow::initializeDatabase() {
databaseManager->openDB();
}
void MainWindow::activate() {
model = new QSqlTableModel(this); // Funktioniert
model->setTable("EmployeeTable");
model->select();
ui->tableView->show();
}