setModel(QAbstractItemModel*) is private
Verfasst: 10. Februar 2010 00:31
Hallo @ all
bin neu hier und werke erst seit kurzem mit QT. Habe bisher in Delphi programmiert. C++habe ich früher in einem 1/2 Jahres Kurs gelernt ist aber schon ewig her. Daher Sry für meine Anfängerfrage ^^
Bin gerade dabei mein Datenbankprogramm (in Delphi geschrieben) nun auch in QT zu schreiben.
So nun mal meine Fehlerstelle:
In einem Beispiel sieht dies ziehmlich ähnlich aus und soll auch funktionieren:
Kann mir wer einen Tipp geben was ich falsch mache???
Hier mal mein kompletter Code:
mainwindow.cpp
main.cpp
dbverbindung.cpp
bin neu hier und werke erst seit kurzem mit QT. Habe bisher in Delphi programmiert. C++habe ich früher in einem 1/2 Jahres Kurs gelernt ist aber schon ewig her. Daher Sry für meine Anfängerfrage ^^
Bin gerade dabei mein Datenbankprogramm (in Delphi geschrieben) nun auch in QT zu schreiben.
So nun mal meine Fehlerstelle:
Code: Alles auswählen
void MainWindow::on_Btn_Kd_Suchen_clicked()
{
Tdbverbindung dbverbindung;
QSqlQueryModel *model = new QSqlQueryModel(ui->tableWidget_Person);
model->setQuery(QSqlQuery("Select * from person",dbverbindung));
ui->tableWidget_Person->setModel(model); //FEHLERSTELLE
}Code: Alles auswählen
void Browser::exec()
{
QSqlQueryModel *model = new QSqlQueryModel(table);
model->setQuery(QSqlQuery(sqlEdit->toPlainText(), connectionWidget->currentDatabase()));
table->setModel(model);
..............
}Hier mal mein kompletter Code:
mainwindow.cpp
Code: Alles auswählen
#include "mainwindow.h"
#include "dbverbindung.h"
#include "ui_mainwindow.h"
#include <QtSql>
#include <QMessageBox>
#include <QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::on_Btn_Kd_Suchen_clicked()
{
Tdbverbindung dbverbindung;
QSqlQueryModel *model = new QSqlQueryModel(ui->tableWidget_Person);
model->setQuery(QSqlQuery("Select * from person",dbverbindung));
ui->tableWidget_Person->setModel(model);
}Code: Alles auswählen
#include <QtGui/QApplication>
#include <QMessageBox>
#include "mainwindow.h"
#include "dbverbindung.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
// Tdbverbindung tdbverbindung;
// if (tdbverbindung.verbinden("127.0.0.1","versmax","***","***",3306))
// QMessageBox::information(0,QObject::tr("Verbunden"),QObject::tr("Bin Verbunden"));
// tdbverbindung.close();
return a.exec();
}Code: Alles auswählen
#include "dbverbindung.h"
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlError>
Tdbverbindung::Tdbverbindung()
{
}
Tdbverbindung::~Tdbverbindung()
{
}
bool Tdbverbindung::verbinden(QString ip, QString dbname, QString user, QString pass, int socket)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(ip);
db.setDatabaseName(dbname);
db.setUserName(user);
db.setPassword(pass);
db.setPort(socket);
if (!db.open()){
QMessageBox::critical(0,QObject::tr("Fehler.."),db.lastError().text());
return false;
}
return true;
}