Keine Anzeige in TableView

Alles rund um die Programmierung mit Qt
Antworten
pierredrks
Beiträge: 7
Registriert: 22. April 2009 18:48

Keine Anzeige in TableView

Beitrag von pierredrks »

Hallo,
ich schreibe gerade eine Anwendung, die auf eine MYSQL-Datenbank zugreift. Ich habe mit dem Designer eine kleine GUI mit einem TableView und einem Button erzeugt. Den Tabelleninhalt möchte ich mit einem QSqlTableModel in dem TableView anzeigen lassen. Aber es wird nichts angezeigt. Eine Verbindung zur Datenbank wird hergestellt.

Das ganze mache ich derzeit im Konstruktor des Hauptfensters.

Code: Alles auswählen

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
	
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL3");
	db.setDatabaseName("ijb");
	db.setHostName("localhost");
	db.setUserName("pierre");
	db.setPassword("****");



	if (!db->open())
	{
		QSqlError err = db->getError();
		QMessageBox::information(0,"Nachricht",err.text());
	}

	QSqlTableModel model;
	model.setTable("Mitarbeiter");
	model.select();
	model.setEditStrategy(QSqlTableModel::OnRowChange);
	ui->tableView->setModel(&model);

}
Ich hoffe jemand von euch kann mir sagen wo der Fehler ist.

Achso, ich hatte zu Testzwecken den Codeteil mit dem Model mal in einen Slot vom Hauptformular gesteckt, der bei clicken des Buttons aktiviert wurde. Dort konnte ich schon mal die Gitter des TableView sehen, die aber sofort wieder gelöscht wurden.
Daher vermute ich, dass das Ergebnis der Abfrage sofort nach dem Zeichnen der Tabelle wieder gelöscht wird.

Gruß
Pierre
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

Beitrag von forgoden »

mach new rein
etwa so

Code: Alles auswählen

   QSqlTableModel *model = new QSqlTableModel ;
   model->setTable("Mitarbeiter");
   model->select();
   model->setEditStrategy(QSqlTableModel::OnRowChange);  

denke dass das dann geht.
Zuletzt geändert von forgoden am 17. Mai 2009 19:43, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

@forgoden: Das new ist nicht notwendig, schau dir mal die Doku an

@pierredrks: Schau dir mal die Lebensdauer deines Models an.
pierredrks
Beiträge: 7
Registriert: 22. April 2009 18:48

Beitrag von pierredrks »

Die Lebensdauer war es. Danke für den HInweis.
Antworten