Seite 1 von 2

QMainWindow Model Prob

Verfasst: 26. November 2008 16:20
von XxM4ST3RxX
Hallo ich wollte mal fragen wieso mein QSqlRelationalTableModel in einem QMainWindow als Klassenvariable nicht läuft ... ? wenn ich es in einen Slot einfüge dann klappt es aber nicht als Klassenvariable. Bei QWidget geht es aber ich brauche das QMainWindow.

Verfasst: 26. November 2008 16:28
von AuE
WAS?

Verfasst: 28. November 2008 01:47
von XxM4ST3RxX
also wenn ich in einer QMainWindow Instanz im Konstruktor ein Model erstelle bleibt es immer leer wieso ?

Verfasst: 28. November 2008 07:13
von AuE
evtl weil es nach verlassen des c´tors keinen scope mehr hat?

Verfasst: 28. November 2008 08:16
von upsala
Und ohne Code kann man sowieso nur raten, was du eigentlich machst...

Verfasst: 28. November 2008 09:42
von AuE
jepp das auch richtig.... ich gehe mal davon aus das du nen tableview hast dem du nen model zuweisen willst.

sobald das model seinen scope verliert wird auch nix mehr angezeigt

Verfasst: 28. November 2008 12:15
von XxM4ST3RxX
ähm ok hier ist der Code und die Variable bleibt im Scope den es ist ja ne Membervariable das habe ich oben schon mal geschrieben.

cshareit.h

Code: Alles auswählen

#ifndef CSHAREIT_H
#define CSHAREIT_H

#include <QtGui/QMainWindow>
#include <QtSql>
#include <QSettings>
#include <QHeaderView>
#include <QMessageBox>
#include "ui_cshareit.h"
#include "cclasses.h"
#include "cpupils.h"
#include "ctypes.h"
#include "cbooks.h"
#include "cshares.h"
#include "csettings.h"
#include "caboutshareit.h"

/**
 * Share It Hauptfenster
 */
class CShareIt: public QMainWindow
{
	Q_OBJECT

public:
	CShareIt(QWidget *parent = 0);
	~CShareIt();

private:
	Ui::CShareItClass ui;
	QSqlRelationalTableModel * returnModel;
	QSettings settings;

private slots:
	void showClasses();
	void showPupils();
	void showTypes();
	void showBooks();
	void showShares();
	void showSettings();
	void showAboutShareIt();
	void changedAction(int index);
	void submit();
};

#endif // CSHAREIT_H
cshareit.cpp

Code: Alles auswählen

#include "cshareit.h"

/**
 * Konstruktor führt Aktionen aus die beim erstellen des Objekts
 * gemacht werden müssen.
 */
CShareIt::CShareIt(QWidget *parent) :
	QMainWindow(parent),
	returnModel(new QSqlRelationalTableModel),
	settings("settings.ini", QSettings::IniFormat)
{
	ui.setupUi(this);

	connect(ui.adminClasses, SIGNAL(triggered()),
			this, SLOT(showClasses()));
	connect(ui.adminPupils, SIGNAL(triggered()),
			this, SLOT(showPupils()));
	connect(ui.adminTypes, SIGNAL(triggered()),
			this, SLOT(showTypes()));
	connect(ui.adminBooks, SIGNAL(triggered()),
			this, SLOT(showBooks()));
	connect(ui.adminShares, SIGNAL(triggered()),
			this, SLOT(showShares()));
	connect(ui.systemSettings, SIGNAL(triggered()),
			this, SLOT(showSettings()));
	connect(ui.helpAboutQt, SIGNAL(triggered()),
			qApp, SLOT(aboutQt()));
	connect(ui.helpAboutShareIt, SIGNAL(triggered()),
			this, SLOT(showAboutShareIt()));
	connect(ui.twActions, SIGNAL(currentChanged(int)),
			this, SLOT(changedAction(int)));

	returnModel->setTable("shares");
	returnModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
	returnModel->setHeaderData(0, Qt::Horizontal, tr("ID"));
	returnModel->setHeaderData(1, Qt::Horizontal, tr("Schüler"));
	returnModel->setHeaderData(2, Qt::Horizontal, tr("Buch"));
	returnModel->setHeaderData(3, Qt::Horizontal, tr("Ausgabe"));
	returnModel->setHeaderData(4, Qt::Horizontal, tr("Rückgabe"));
	returnModel->setRelation(1, QSqlRelation("pupils", "id", "name"));
	returnModel->setRelation(2, QSqlRelation("books", "id", "title"));
	returnModel->select();

	ui.tvReturn->setModel(returnModel);
	ui.tvReturn->hideColumn(0);
	ui.tvReturn->header()->setResizeMode(QHeaderView::Stretch);
	ui.tvReturn->setItemDelegate(new QSqlRelationalDelegate(ui.tvReturn));
}

/**
 * Destruktor führt die Aktionen aus die für das Aufräumen zuständig sind.
 */
CShareIt::~CShareIt()
{

}

/**
 * TODO
 */
void CShareIt::showClasses()
{
	CClasses * cClasses = new CClasses;
	cClasses->show();
}

/**
 * TODO
 */
void CShareIt::showPupils()
{
	CPupils * cPupils = new CPupils;
	cPupils->show();
}

/**
 * TODO
 */
void CShareIt::showTypes()
{
	CTypes * cTypes = new CTypes;
	cTypes->show();
}

/**
 * TODO
 */
void CShareIt::showBooks()
{
	CBooks * cBooks = new CBooks;
	cBooks->show();
}

/**
 * TODO
 */
void CShareIt::showShares()
{
	CShares * cShares = new CShares;
	cShares->show();
}

/**
 * TODO
 */
void CShareIt::showSettings()
{
	CSettings * cSettings = new CSettings;
	cSettings->show();
}

/**
 * TODO
 */
void CShareIt::showAboutShareIt()
{
	CAboutShareIt * cAboutShareIt = new CAboutShareIt;
	cAboutShareIt->show();
}

/**
 * Setzt die Einstellungen für die gewählte Aktion.
 * @param index Indexwert der gewählten Aktion.
 */
void CShareIt::changedAction(int index)
{
	switch(index)
	{
	case 0:
		ui.pbSubmit->setText("Ausgabe");
		ui.pbSubmit->setHidden(false);
		break;
	case 1:
		ui.pbSubmit->setText("Rückgabe");
		ui.pbSubmit->setHidden(false);
		break;
	default:
		ui.pbSubmit->setHidden(true);
		break;
	}
}

/**
 * TODO
 */
void CShareIt::submit()
{

}
ui_cshareit.h

Code: Alles auswählen

/********************************************************************************
** Form generated from reading ui file 'cshareit.ui'
**
** Created: Wed 26. Nov 15:14:00 2008
**      by: Qt User Interface Compiler version 4.4.3
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

#ifndef UI_CSHAREIT_H
#define UI_CSHAREIT_H

#include <QtCore/QDate>
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QCheckBox>
#include <QtGui/QComboBox>
#include <QtGui/QDateEdit>
#include <QtGui/QFormLayout>
#include <QtGui/QGridLayout>
#include <QtGui/QGroupBox>
#include <QtGui/QHBoxLayout>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QStatusBar>
#include <QtGui/QTabWidget>
#include <QtGui/QTreeView>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_CShareItClass
{
public:
    QAction *adminClasses;
    QAction *adminPupils;
    QAction *adminTypes;
    QAction *adminBooks;
    QAction *adminShares;
    QAction *systemSettings;
    QAction *helpAboutQt;
    QAction *helpAboutShareIt;
    QWidget *centralwidget;
    QVBoxLayout *verticalLayout_4;
    QTabWidget *twActions;
    QWidget *_get;
    QVBoxLayout *verticalLayout_5;
    QGroupBox *gbGetPupil;
    QHBoxLayout *horizontalLayout_5;
    QGroupBox *gbGetPupilFilter;
    QVBoxLayout *verticalLayout;
    QFormLayout *formLayout_2;
    QLabel *lGetPupilFilterName;
    QLabel *lGetPupilFilterClass;
    QLabel *lGetPupilFilterBday;
    QLineEdit *leGetPupilFilterName;
    QComboBox *cbGetPupilFilterClass;
    QDateEdit *deGetPupilFilterBday;
    QHBoxLayout *horizontalLayout_4;
    QSpacerItem *horizontalSpacer_3;
    QPushButton *pbGetPupilFilter;
    QPushButton *pbGetPupilFilterReset;
    QGroupBox *gbGetPupilResult;
    QGridLayout *gridLayout;
    QTreeView *tvGetPupil;
    QGroupBox *gbGetBook;
    QHBoxLayout *horizontalLayout_7;
    QGroupBox *gbGetBookFilter;
    QVBoxLayout *verticalLayout_3;
    QFormLayout *formLayout_3;
    QLabel *lGetBookFilterTitle;
    QLabel *lGetBookFilterVerlag;
    QLabel *lGetBookFilterIsbn;
    QLabel *lGetBookFilterType;
    QLineEdit *leGetBookFilterTitle;
    QLineEdit *leGetBookFilterVerlag;
    QLineEdit *leGetBookFilterIsbn;
    QComboBox *cbGetBookFilterType;
    QHBoxLayout *horizontalLayout_6;
    QSpacerItem *horizontalSpacer_4;
    QPushButton *pbGetBookFilter;
    QPushButton *pbGetBookFilterReset;
    QGroupBox *gbGetBookResult;
    QGridLayout *gridLayout_3;
    QTreeView *tvGetBook;
    QWidget *_return;
    QHBoxLayout *horizontalLayout_2;
    QGroupBox *gbReturnFilter;
    QVBoxLayout *verticalLayout_2;
    QFormLayout *formLayout;
    QLabel *lReturnFilterPupil;
    QLabel *lReturnFilterBook;
    QLabel *lReturnFilterGet;
    QLabel *lReturnFilterReturn;
    QCheckBox *cbReturnDue;
    QComboBox *cbReturnFilterPupil;
    QComboBox *cbReturnFilterBook;
    QDateEdit *deReturnFilterGet;
    QDateEdit *deReturnFilterReturn;
    QHBoxLayout *horizontalLayout_3;
    QSpacerItem *horizontalSpacer_2;
    QPushButton *pbReturnFilter;
    QPushButton *pbReturnFilterReset;
    QGroupBox *gbReturnResults;
    QGridLayout *gridLayout_2;
    QTreeView *tvReturn;
    QWidget *_statics;
    QHBoxLayout *horizontalLayout;
    QSpacerItem *horizontalSpacer;
    QPushButton *pbSubmit;
    QMenuBar *menubar;
    QMenu *menuAdministration;
    QMenu *menuSystem;
    QMenu *menuHilfe;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *CShareItClass)
    {
    if (CShareItClass->objectName().isEmpty())
        CShareItClass->setObjectName(QString::fromUtf8("CShareItClass"));
    CShareItClass->resize(800, 600);
    adminClasses = new QAction(CShareItClass);
    adminClasses->setObjectName(QString::fromUtf8("adminClasses"));
    adminPupils = new QAction(CShareItClass);
    adminPupils->setObjectName(QString::fromUtf8("adminPupils"));
    adminTypes = new QAction(CShareItClass);
    adminTypes->setObjectName(QString::fromUtf8("adminTypes"));
    adminBooks = new QAction(CShareItClass);
    adminBooks->setObjectName(QString::fromUtf8("adminBooks"));
    adminShares = new QAction(CShareItClass);
    adminShares->setObjectName(QString::fromUtf8("adminShares"));
    systemSettings = new QAction(CShareItClass);
    systemSettings->setObjectName(QString::fromUtf8("systemSettings"));
    helpAboutQt = new QAction(CShareItClass);
    helpAboutQt->setObjectName(QString::fromUtf8("helpAboutQt"));
    helpAboutShareIt = new QAction(CShareItClass);
    helpAboutShareIt->setObjectName(QString::fromUtf8("helpAboutShareIt"));
    centralwidget = new QWidget(CShareItClass);
    centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
    verticalLayout_4 = new QVBoxLayout(centralwidget);
    verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4"));
    twActions = new QTabWidget(centralwidget);
    twActions->setObjectName(QString::fromUtf8("twActions"));
    _get = new QWidget();
    _get->setObjectName(QString::fromUtf8("_get"));
    verticalLayout_5 = new QVBoxLayout(_get);
    verticalLayout_5->setObjectName(QString::fromUtf8("verticalLayout_5"));
    gbGetPupil = new QGroupBox(_get);
    gbGetPupil->setObjectName(QString::fromUtf8("gbGetPupil"));
    horizontalLayout_5 = new QHBoxLayout(gbGetPupil);
    horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
    gbGetPupilFilter = new QGroupBox(gbGetPupil);
    gbGetPupilFilter->setObjectName(QString::fromUtf8("gbGetPupilFilter"));
    gbGetPupilFilter->setMinimumSize(QSize(250, 0));
    gbGetPupilFilter->setMaximumSize(QSize(250, 16777215));
    verticalLayout = new QVBoxLayout(gbGetPupilFilter);
    verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
    formLayout_2 = new QFormLayout();
    formLayout_2->setObjectName(QString::fromUtf8("formLayout_2"));
    lGetPupilFilterName = new QLabel(gbGetPupilFilter);
    lGetPupilFilterName->setObjectName(QString::fromUtf8("lGetPupilFilterName"));

    formLayout_2->setWidget(0, QFormLayout::LabelRole, lGetPupilFilterName);

    lGetPupilFilterClass = new QLabel(gbGetPupilFilter);
    lGetPupilFilterClass->setObjectName(QString::fromUtf8("lGetPupilFilterClass"));

    formLayout_2->setWidget(1, QFormLayout::LabelRole, lGetPupilFilterClass);

    lGetPupilFilterBday = new QLabel(gbGetPupilFilter);
    lGetPupilFilterBday->setObjectName(QString::fromUtf8("lGetPupilFilterBday"));

    formLayout_2->setWidget(2, QFormLayout::LabelRole, lGetPupilFilterBday);

    leGetPupilFilterName = new QLineEdit(gbGetPupilFilter);
    leGetPupilFilterName->setObjectName(QString::fromUtf8("leGetPupilFilterName"));

    formLayout_2->setWidget(0, QFormLayout::FieldRole, leGetPupilFilterName);

    cbGetPupilFilterClass = new QComboBox(gbGetPupilFilter);
    cbGetPupilFilterClass->setObjectName(QString::fromUtf8("cbGetPupilFilterClass"));

    formLayout_2->setWidget(1, QFormLayout::FieldRole, cbGetPupilFilterClass);

    deGetPupilFilterBday = new QDateEdit(gbGetPupilFilter);
    deGetPupilFilterBday->setObjectName(QString::fromUtf8("deGetPupilFilterBday"));
    deGetPupilFilterBday->setMinimumDate(QDate(1900, 12, 31));
    deGetPupilFilterBday->setCalendarPopup(true);
    deGetPupilFilterBday->setDate(QDate(1900, 12, 31));

    formLayout_2->setWidget(2, QFormLayout::FieldRole, deGetPupilFilterBday);


    verticalLayout->addLayout(formLayout_2);

    horizontalLayout_4 = new QHBoxLayout();
    horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
    horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);

    horizontalLayout_4->addItem(horizontalSpacer_3);

    pbGetPupilFilter = new QPushButton(gbGetPupilFilter);
    pbGetPupilFilter->setObjectName(QString::fromUtf8("pbGetPupilFilter"));

    horizontalLayout_4->addWidget(pbGetPupilFilter);

    pbGetPupilFilterReset = new QPushButton(gbGetPupilFilter);
    pbGetPupilFilterReset->setObjectName(QString::fromUtf8("pbGetPupilFilterReset"));

    horizontalLayout_4->addWidget(pbGetPupilFilterReset);


    verticalLayout->addLayout(horizontalLayout_4);


    horizontalLayout_5->addWidget(gbGetPupilFilter);

    gbGetPupilResult = new QGroupBox(gbGetPupil);
    gbGetPupilResult->setObjectName(QString::fromUtf8("gbGetPupilResult"));
    gridLayout = new QGridLayout(gbGetPupilResult);
    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
    tvGetPupil = new QTreeView(gbGetPupilResult);
    tvGetPupil->setObjectName(QString::fromUtf8("tvGetPupil"));
    tvGetPupil->setEditTriggers(QAbstractItemView::NoEditTriggers);
    tvGetPupil->setRootIsDecorated(false);
    tvGetPupil->setSortingEnabled(true);
    tvGetPupil->setAllColumnsShowFocus(true);

    gridLayout->addWidget(tvGetPupil, 0, 0, 1, 1);


    horizontalLayout_5->addWidget(gbGetPupilResult);


    verticalLayout_5->addWidget(gbGetPupil);

    gbGetBook = new QGroupBox(_get);
    gbGetBook->setObjectName(QString::fromUtf8("gbGetBook"));
    horizontalLayout_7 = new QHBoxLayout(gbGetBook);
    horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7"));
    gbGetBookFilter = new QGroupBox(gbGetBook);
    gbGetBookFilter->setObjectName(QString::fromUtf8("gbGetBookFilter"));
    gbGetBookFilter->setMinimumSize(QSize(250, 0));
    gbGetBookFilter->setMaximumSize(QSize(250, 16777215));
    verticalLayout_3 = new QVBoxLayout(gbGetBookFilter);
    verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
    formLayout_3 = new QFormLayout();
    formLayout_3->setObjectName(QString::fromUtf8("formLayout_3"));
    lGetBookFilterTitle = new QLabel(gbGetBookFilter);
    lGetBookFilterTitle->setObjectName(QString::fromUtf8("lGetBookFilterTitle"));

    formLayout_3->setWidget(0, QFormLayout::LabelRole, lGetBookFilterTitle);

    lGetBookFilterVerlag = new QLabel(gbGetBookFilter);
    lGetBookFilterVerlag->setObjectName(QString::fromUtf8("lGetBookFilterVerlag"));

    formLayout_3->setWidget(1, QFormLayout::LabelRole, lGetBookFilterVerlag);

    lGetBookFilterIsbn = new QLabel(gbGetBookFilter);
    lGetBookFilterIsbn->setObjectName(QString::fromUtf8("lGetBookFilterIsbn"));

    formLayout_3->setWidget(2, QFormLayout::LabelRole, lGetBookFilterIsbn);

    lGetBookFilterType = new QLabel(gbGetBookFilter);
    lGetBookFilterType->setObjectName(QString::fromUtf8("lGetBookFilterType"));

    formLayout_3->setWidget(3, QFormLayout::LabelRole, lGetBookFilterType);

    leGetBookFilterTitle = new QLineEdit(gbGetBookFilter);
    leGetBookFilterTitle->setObjectName(QString::fromUtf8("leGetBookFilterTitle"));

    formLayout_3->setWidget(0, QFormLayout::FieldRole, leGetBookFilterTitle);

    leGetBookFilterVerlag = new QLineEdit(gbGetBookFilter);
    leGetBookFilterVerlag->setObjectName(QString::fromUtf8("leGetBookFilterVerlag"));

    formLayout_3->setWidget(1, QFormLayout::FieldRole, leGetBookFilterVerlag);

    leGetBookFilterIsbn = new QLineEdit(gbGetBookFilter);
    leGetBookFilterIsbn->setObjectName(QString::fromUtf8("leGetBookFilterIsbn"));

    formLayout_3->setWidget(2, QFormLayout::FieldRole, leGetBookFilterIsbn);

    cbGetBookFilterType = new QComboBox(gbGetBookFilter);
    cbGetBookFilterType->setObjectName(QString::fromUtf8("cbGetBookFilterType"));

    formLayout_3->setWidget(3, QFormLayout::FieldRole, cbGetBookFilterType);


    verticalLayout_3->addLayout(formLayout_3);

    horizontalLayout_6 = new QHBoxLayout();
    horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6"));
    horizontalSpacer_4 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);

    horizontalLayout_6->addItem(horizontalSpacer_4);

    pbGetBookFilter = new QPushButton(gbGetBookFilter);
    pbGetBookFilter->setObjectName(QString::fromUtf8("pbGetBookFilter"));

    horizontalLayout_6->addWidget(pbGetBookFilter);

    pbGetBookFilterReset = new QPushButton(gbGetBookFilter);
    pbGetBookFilterReset->setObjectName(QString::fromUtf8("pbGetBookFilterReset"));

    horizontalLayout_6->addWidget(pbGetBookFilterReset);


    verticalLayout_3->addLayout(horizontalLayout_6);


    horizontalLayout_7->addWidget(gbGetBookFilter);

    gbGetBookResult = new QGroupBox(gbGetBook);
    gbGetBookResult->setObjectName(QString::fromUtf8("gbGetBookResult"));
    gridLayout_3 = new QGridLayout(gbGetBookResult);
    gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));
    tvGetBook = new QTreeView(gbGetBookResult);
    tvGetBook->setObjectName(QString::fromUtf8("tvGetBook"));
    tvGetBook->setEditTriggers(QAbstractItemView::NoEditTriggers);
    tvGetBook->setRootIsDecorated(false);
    tvGetBook->setSortingEnabled(true);
    tvGetBook->setAllColumnsShowFocus(true);

    gridLayout_3->addWidget(tvGetBook, 0, 0, 1, 1);


    horizontalLayout_7->addWidget(gbGetBookResult);


    verticalLayout_5->addWidget(gbGetBook);

    twActions->addTab(_get, QString());
    _return = new QWidget();
    _return->setObjectName(QString::fromUtf8("_return"));
    horizontalLayout_2 = new QHBoxLayout(_return);
    horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
    gbReturnFilter = new QGroupBox(_return);
    gbReturnFilter->setObjectName(QString::fromUtf8("gbReturnFilter"));
    gbReturnFilter->setMinimumSize(QSize(250, 0));
    gbReturnFilter->setMaximumSize(QSize(250, 16777215));
    verticalLayout_2 = new QVBoxLayout(gbReturnFilter);
    verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
    formLayout = new QFormLayout();
    formLayout->setObjectName(QString::fromUtf8("formLayout"));
    lReturnFilterPupil = new QLabel(gbReturnFilter);
    lReturnFilterPupil->setObjectName(QString::fromUtf8("lReturnFilterPupil"));

    formLayout->setWidget(0, QFormLayout::LabelRole, lReturnFilterPupil);

    lReturnFilterBook = new QLabel(gbReturnFilter);
    lReturnFilterBook->setObjectName(QString::fromUtf8("lReturnFilterBook"));

    formLayout->setWidget(1, QFormLayout::LabelRole, lReturnFilterBook);

    lReturnFilterGet = new QLabel(gbReturnFilter);
    lReturnFilterGet->setObjectName(QString::fromUtf8("lReturnFilterGet"));

    formLayout->setWidget(2, QFormLayout::LabelRole, lReturnFilterGet);

    lReturnFilterReturn = new QLabel(gbReturnFilter);
    lReturnFilterReturn->setObjectName(QString::fromUtf8("lReturnFilterReturn"));

    formLayout->setWidget(3, QFormLayout::LabelRole, lReturnFilterReturn);

    cbReturnDue = new QCheckBox(gbReturnFilter);
    cbReturnDue->setObjectName(QString::fromUtf8("cbReturnDue"));

    formLayout->setWidget(4, QFormLayout::FieldRole, cbReturnDue);

    cbReturnFilterPupil = new QComboBox(gbReturnFilter);
    cbReturnFilterPupil->setObjectName(QString::fromUtf8("cbReturnFilterPupil"));
    cbReturnFilterPupil->setModelColumn(-1);

    formLayout->setWidget(0, QFormLayout::FieldRole, cbReturnFilterPupil);

    cbReturnFilterBook = new QComboBox(gbReturnFilter);
    cbReturnFilterBook->setObjectName(QString::fromUtf8("cbReturnFilterBook"));
    cbReturnFilterBook->setModelColumn(-1);

    formLayout->setWidget(1, QFormLayout::FieldRole, cbReturnFilterBook);

    deReturnFilterGet = new QDateEdit(gbReturnFilter);
    deReturnFilterGet->setObjectName(QString::fromUtf8("deReturnFilterGet"));
    deReturnFilterGet->setMinimumDate(QDate(1900, 12, 31));
    deReturnFilterGet->setCalendarPopup(true);
    deReturnFilterGet->setDate(QDate(1900, 12, 31));

    formLayout->setWidget(2, QFormLayout::FieldRole, deReturnFilterGet);

    deReturnFilterReturn = new QDateEdit(gbReturnFilter);
    deReturnFilterReturn->setObjectName(QString::fromUtf8("deReturnFilterReturn"));
    deReturnFilterReturn->setMinimumDate(QDate(1900, 12, 31));
    deReturnFilterReturn->setCalendarPopup(true);
    deReturnFilterReturn->setDate(QDate(1900, 12, 31));

    formLayout->setWidget(3, QFormLayout::FieldRole, deReturnFilterReturn);


    verticalLayout_2->addLayout(formLayout);

    horizontalLayout_3 = new QHBoxLayout();
    horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));
    horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);

    horizontalLayout_3->addItem(horizontalSpacer_2);

    pbReturnFilter = new QPushButton(gbReturnFilter);
    pbReturnFilter->setObjectName(QString::fromUtf8("pbReturnFilter"));

    horizontalLayout_3->addWidget(pbReturnFilter);

    pbReturnFilterReset = new QPushButton(gbReturnFilter);
    pbReturnFilterReset->setObjectName(QString::fromUtf8("pbReturnFilterReset"));

    horizontalLayout_3->addWidget(pbReturnFilterReset);


    verticalLayout_2->addLayout(horizontalLayout_3);


    horizontalLayout_2->addWidget(gbReturnFilter);

    gbReturnResults = new QGroupBox(_return);
    gbReturnResults->setObjectName(QString::fromUtf8("gbReturnResults"));
    gridLayout_2 = new QGridLayout(gbReturnResults);
    gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
    tvReturn = new QTreeView(gbReturnResults);
    tvReturn->setObjectName(QString::fromUtf8("tvReturn"));
    tvReturn->setEditTriggers(QAbstractItemView::NoEditTriggers);
    tvReturn->setRootIsDecorated(false);
    tvReturn->setSortingEnabled(true);
    tvReturn->setAllColumnsShowFocus(true);

    gridLayout_2->addWidget(tvReturn, 0, 0, 1, 1);


    horizontalLayout_2->addWidget(gbReturnResults);

    twActions->addTab(_return, QString());
    _statics = new QWidget();
    _statics->setObjectName(QString::fromUtf8("_statics"));
    twActions->addTab(_statics, QString());

    verticalLayout_4->addWidget(twActions);

    horizontalLayout = new QHBoxLayout();
    horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
    horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);

    horizontalLayout->addItem(horizontalSpacer);

    pbSubmit = new QPushButton(centralwidget);
    pbSubmit->setObjectName(QString::fromUtf8("pbSubmit"));

    horizontalLayout->addWidget(pbSubmit);


    verticalLayout_4->addLayout(horizontalLayout);

    CShareItClass->setCentralWidget(centralwidget);
    menubar = new QMenuBar(CShareItClass);
    menubar->setObjectName(QString::fromUtf8("menubar"));
    menubar->setGeometry(QRect(0, 0, 800, 21));
    menuAdministration = new QMenu(menubar);
    menuAdministration->setObjectName(QString::fromUtf8("menuAdministration"));
    menuSystem = new QMenu(menubar);
    menuSystem->setObjectName(QString::fromUtf8("menuSystem"));
    menuHilfe = new QMenu(menubar);
    menuHilfe->setObjectName(QString::fromUtf8("menuHilfe"));
    CShareItClass->setMenuBar(menubar);
    statusbar = new QStatusBar(CShareItClass);
    statusbar->setObjectName(QString::fromUtf8("statusbar"));
    CShareItClass->setStatusBar(statusbar);

    menubar->addAction(menuAdministration->menuAction());
    menubar->addAction(menuSystem->menuAction());
    menubar->addAction(menuHilfe->menuAction());
    menuAdministration->addAction(adminClasses);
    menuAdministration->addAction(adminPupils);
    menuAdministration->addSeparator();
    menuAdministration->addAction(adminTypes);
    menuAdministration->addAction(adminBooks);
    menuAdministration->addSeparator();
    menuAdministration->addAction(adminShares);
    menuSystem->addAction(systemSettings);
    menuHilfe->addAction(helpAboutQt);
    menuHilfe->addAction(helpAboutShareIt);

    retranslateUi(CShareItClass);

    twActions->setCurrentIndex(0);


    QMetaObject::connectSlotsByName(CShareItClass);
    } // setupUi

    void retranslateUi(QMainWindow *CShareItClass)
    {
    CShareItClass->setWindowTitle(QApplication::translate("CShareItClass", "Share It", 0, QApplication::UnicodeUTF8));
    adminClasses->setText(QApplication::translate("CShareItClass", "Klassen", 0, QApplication::UnicodeUTF8));
    adminPupils->setText(QApplication::translate("CShareItClass", "Sch\303\274ler", 0, QApplication::UnicodeUTF8));
    adminTypes->setText(QApplication::translate("CShareItClass", "Generen", 0, QApplication::UnicodeUTF8));
    adminBooks->setText(QApplication::translate("CShareItClass", "B\303\274cher", 0, QApplication::UnicodeUTF8));
    adminShares->setText(QApplication::translate("CShareItClass", "Verleih", 0, QApplication::UnicodeUTF8));
    systemSettings->setText(QApplication::translate("CShareItClass", "Einstellungen", 0, QApplication::UnicodeUTF8));
    helpAboutQt->setText(QApplication::translate("CShareItClass", "\303\234ber Qt", 0, QApplication::UnicodeUTF8));
    helpAboutShareIt->setText(QApplication::translate("CShareItClass", "\303\234ber Share It", 0, QApplication::UnicodeUTF8));
    gbGetPupil->setTitle(QApplication::translate("CShareItClass", "Sch\303\274ler", 0, QApplication::UnicodeUTF8));
    gbGetPupilFilter->setTitle(QApplication::translate("CShareItClass", "Filter", 0, QApplication::UnicodeUTF8));
    lGetPupilFilterName->setText(QApplication::translate("CShareItClass", "Name", 0, QApplication::UnicodeUTF8));
    lGetPupilFilterClass->setText(QApplication::translate("CShareItClass", "Klasse", 0, QApplication::UnicodeUTF8));
    lGetPupilFilterBday->setText(QApplication::translate("CShareItClass", "Geburtstag", 0, QApplication::UnicodeUTF8));
    pbGetPupilFilter->setText(QApplication::translate("CShareItClass", "Filter", 0, QApplication::UnicodeUTF8));
    pbGetPupilFilterReset->setText(QApplication::translate("CShareItClass", "Zur\303\274cksetzen", 0, QApplication::UnicodeUTF8));
    gbGetPupilResult->setTitle(QApplication::translate("CShareItClass", "Ergebnisse", 0, QApplication::UnicodeUTF8));
    gbGetBook->setTitle(QApplication::translate("CShareItClass", "Buch", 0, QApplication::UnicodeUTF8));
    gbGetBookFilter->setTitle(QApplication::translate("CShareItClass", "Filter", 0, QApplication::UnicodeUTF8));
    lGetBookFilterTitle->setText(QApplication::translate("CShareItClass", "Titel", 0, QApplication::UnicodeUTF8));
    lGetBookFilterVerlag->setText(QApplication::translate("CShareItClass", "Verlag", 0, QApplication::UnicodeUTF8));
    lGetBookFilterIsbn->setText(QApplication::translate("CShareItClass", "ISBN", 0, QApplication::UnicodeUTF8));
    lGetBookFilterType->setText(QApplication::translate("CShareItClass", "Genere", 0, QApplication::UnicodeUTF8));
    pbGetBookFilter->setText(QApplication::translate("CShareItClass", "Filter", 0, QApplication::UnicodeUTF8));
    pbGetBookFilterReset->setText(QApplication::translate("CShareItClass", "Zur\303\274cksetzen", 0, QApplication::UnicodeUTF8));
    gbGetBookResult->setTitle(QApplication::translate("CShareItClass", "Ergebnisse", 0, QApplication::UnicodeUTF8));
    twActions->setTabText(twActions->indexOf(_get), QApplication::translate("CShareItClass", "Ausgabe", 0, QApplication::UnicodeUTF8));
    gbReturnFilter->setTitle(QApplication::translate("CShareItClass", "Filter", 0, QApplication::UnicodeUTF8));
    lReturnFilterPupil->setText(QApplication::translate("CShareItClass", "Sch\303\274ler", 0, QApplication::UnicodeUTF8));
    lReturnFilterBook->setText(QApplication::translate("CShareItClass", "Buch", 0, QApplication::UnicodeUTF8));
    lReturnFilterGet->setText(QApplication::translate("CShareItClass", "Ausgabe", 0, QApplication::UnicodeUTF8));
    lReturnFilterReturn->setText(QApplication::translate("CShareItClass", "R\303\274ckgabe", 0, QApplication::UnicodeUTF8));
    cbReturnDue->setText(QApplication::translate("CShareItClass", "F\303\244llige B\303\274cher", 0, QApplication::UnicodeUTF8));
    pbReturnFilter->setText(QApplication::translate("CShareItClass", "Filter", 0, QApplication::UnicodeUTF8));
    pbReturnFilterReset->setText(QApplication::translate("CShareItClass", "Zur\303\274cksetzen", 0, QApplication::UnicodeUTF8));
    gbReturnResults->setTitle(QApplication::translate("CShareItClass", "Ergebnisse", 0, QApplication::UnicodeUTF8));
    twActions->setTabText(twActions->indexOf(_return), QApplication::translate("CShareItClass", "R\303\274ckgabe", 0, QApplication::UnicodeUTF8));
    twActions->setTabText(twActions->indexOf(_statics), QApplication::translate("CShareItClass", "Statistiken", 0, QApplication::UnicodeUTF8));
    pbSubmit->setText(QApplication::translate("CShareItClass", "Ausgabe", 0, QApplication::UnicodeUTF8));
    menuAdministration->setTitle(QApplication::translate("CShareItClass", "Administration", 0, QApplication::UnicodeUTF8));
    menuSystem->setTitle(QApplication::translate("CShareItClass", "System", 0, QApplication::UnicodeUTF8));
    menuHilfe->setTitle(QApplication::translate("CShareItClass", "Hilfe", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class CShareItClass: public Ui_CShareItClass {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_CSHAREIT_H
nicht über den Aufbau wundern ist mein erstes Qt Programm

Verfasst: 29. November 2008 01:21
von XxM4ST3RxX
keiner eine ahnung ?

Verfasst: 29. November 2008 07:45
von upsala
Doch, auf den ersten Blick ist auch kein Fehler erkennbar.

Für eine genauere Ansicht, wäre die Hilfe des Computers hilfreich. Doch dazu müßte man sich erst mal den Code aufwendig per Hand rauskopieren. Würdest du das bei dieser Codelänge machen?

In diesem Zusammenhang gibts noch das Stichwort: 'Kurzes(!) reproduzierbares Beispiel'

Verfasst: 29. November 2008 13:24
von XxM4ST3RxX
klar also hier :

Klassendefinition

Code: Alles auswählen

#ifndef CSHAREIT_H
#define CSHAREIT_H

#include <QtGui/QMainWindow>
#include <QtSql>
#include <QSettings>
#include <QHeaderView>
#include <QMessageBox>
#include "ui_cshareit.h"
#include "cclasses.h"
#include "cpupils.h"
#include "ctypes.h"
#include "cbooks.h"
#include "cshares.h"
#include "csettings.h"
#include "caboutshareit.h"

/**
 * Share It Hauptfenster
 */
class CShareIt: public QMainWindow
{
   Q_OBJECT

public:
   CShareIt(QWidget *parent = 0);
   ~CShareIt();

private:
   Ui::CShareItClass ui;
   QSqlRelationalTableModel * returnModel;
   QSettings settings;

private slots:
   void showClasses();
   void showPupils();
   void showTypes();
   void showBooks();
   void showShares();
   void showSettings();
   void showAboutShareIt();
   void changedAction(int index);
   void submit();
};

#endif // CSHAREIT_H 
und hier Implementation nur der teil für das model

Code: Alles auswählen

#include "cshareit.h"

/**
 * Konstruktor führt Aktionen aus die beim erstellen des Objekts
 * gemacht werden müssen.
 */
CShareIt::CShareIt(QWidget *parent) :
   QMainWindow(parent),
   returnModel(new QSqlRelationalTableModel),
   settings("settings.ini", QSettings::IniFormat)
{
   ui.setupUi(this);

   connect(ui.adminClasses, SIGNAL(triggered()),
         this, SLOT(showClasses()));
   connect(ui.adminPupils, SIGNAL(triggered()),
         this, SLOT(showPupils()));
   connect(ui.adminTypes, SIGNAL(triggered()),
         this, SLOT(showTypes()));
   connect(ui.adminBooks, SIGNAL(triggered()),
         this, SLOT(showBooks()));
   connect(ui.adminShares, SIGNAL(triggered()),
         this, SLOT(showShares()));
   connect(ui.systemSettings, SIGNAL(triggered()),
         this, SLOT(showSettings()));
   connect(ui.helpAboutQt, SIGNAL(triggered()),
         qApp, SLOT(aboutQt()));
   connect(ui.helpAboutShareIt, SIGNAL(triggered()),
         this, SLOT(showAboutShareIt()));
   connect(ui.twActions, SIGNAL(currentChanged(int)),
         this, SLOT(changedAction(int)));

   returnModel->setTable("shares");
   returnModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
   returnModel->setHeaderData(0, Qt::Horizontal, tr("ID"));
   returnModel->setHeaderData(1, Qt::Horizontal, tr("Schüler"));
   returnModel->setHeaderData(2, Qt::Horizontal, tr("Buch"));
   returnModel->setHeaderData(3, Qt::Horizontal, tr("Ausgabe"));
   returnModel->setHeaderData(4, Qt::Horizontal, tr("Rückgabe"));
   returnModel->setRelation(1, QSqlRelation("pupils", "id", "name"));
   returnModel->setRelation(2, QSqlRelation("books", "id", "title"));
   returnModel->select();

   ui.tvReturn->setModel(returnModel);
   ui.tvReturn->hideColumn(0);
   ui.tvReturn->header()->setResizeMode(QHeaderView::Stretch);
   ui.tvReturn->setItemDelegate(new QSqlRelationalDelegate(ui.tvReturn));
} 
.....
dürfte jetzt kurzer sein :) hoffe jetzt könntet ihr mir helfen :)

Verfasst: 2. Dezember 2008 08:53
von franzf
Naja, irgendwie fehlt mir die Stelle, an der du deinem returnModel ne Datenbank zuweist...
Hast du bei dieser Herangehensweise daran gedacht, irgendwo VOR dem Erstellen des Hauptfensters eine Datenbank zu öffnen?
Denn ansonsten hast du eine ungültige Datenbank für dein Model, und da verwundert es nicht, dass dieses keine Daten enthält.

Starte das mal auf der Konsole und sag, was da an Output zu lesen ist.

Grüße
Franz

Verfasst: 2. Dezember 2008 18:38
von XxM4ST3RxX
mit der Datenbankverbindung ist alles ok, die erzeuge ich vor der QMainWindow Instanz

hier ist der ausschnitt aus der main...

Code: Alles auswählen

	else
	{
		dbHost = settings.value("database/host", "").toString();
		dbPort = settings.value("database/port", "").toInt();
		dbName = settings.value("database/database", "").toString();
		dbUser = settings.value("database/user", "").toString();
		dbPassword = settings.value("database/password", "").toString();

		QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
		db.setHostName(dbHost);
		db.setPort(dbPort);
		db.setDatabaseName(dbName);
		db.setUserName(dbUser);
		db.setPassword(dbPassword);

		if(!db.open())
		{
			msg.setText("Die Verbindung zur Datenbank kann nicht hergestellt werden, "
					"bitte überprüfen Sie die Datenbank Daten.");
			msg.setIcon(QMessageBox::Information);
			msg.setDetailedText(db.lastError().text());
			msg.setStandardButtons(QMessageBox::Ok);
			msg.setDefaultButton(QMessageBox::Ok);
			msg.exec();

			cs->show();
		}
		else
und ich starte zurzeit immer mit der Console und leider gibt sie mir auch kein Fehler aus ... und Daten aus der Datenbank bekomme ich auch überall nur eben nicht im QMainWindow wen ich die Models als Klassenvariable deklariere.

Verfasst: 4. Dezember 2008 22:49
von XxM4ST3RxX
keiner eine ahnung ? wäre echt nicht schlecht wenn jemmand helfen könnte komme da gerade nicht voran ...

Verfasst: 5. Dezember 2008 09:02
von upsala
Lies dir in Ruhe noch mal meinem Beitrag durch, setz das um, dann reden wir weiter...

Verfasst: 9. Dezember 2008 17:38
von XxM4ST3RxX
naja den code habe ich schon so kurz gepostet wie nötig kürzer geht es nicht siehe 10ter beitrag und das mit "Für eine genauere Ansicht, wäre die Hilfe des Computers hilfreich." falls du damit debuggen meinst habe noch nie einen debugger benutzt schon mal versucht aber nicht hat so geklappt... und meine entwicklungsumgebung ist eclipse wäre schon mal nicht schlecht wen mir jemmand sagt wieso sich das model nur nicht in einem QMainWindow Konstruktor füllt ? die 2te möglichkeit die bisher klappt wäre es mit in einen slot zu packen aber dann habe ich es nur als localen zeiger und bei jedem aufruf wird ein neus model erstellt ....