QMainWindow Model Prob
-
XxM4ST3RxX
- Beiträge: 39
- Registriert: 14. Oktober 2008 19:50
QMainWindow Model Prob
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.
-
XxM4ST3RxX
- Beiträge: 39
- Registriert: 14. Oktober 2008 19:50
-
XxM4ST3RxX
- Beiträge: 39
- Registriert: 14. Oktober 2008 19:50
ä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
cshareit.cpp
ui_cshareit.h
nicht über den Aufbau wundern ist mein erstes Qt Programm
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
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()
{
}
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
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'
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'
-
XxM4ST3RxX
- Beiträge: 39
- Registriert: 14. Oktober 2008 19:50
klar also hier :
Klassendefinition
und hier Implementation nur der teil für das model
dürfte jetzt kurzer sein
hoffe jetzt könntet ihr mir helfen 
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
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));
}
.....
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
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
-
XxM4ST3RxX
- Beiträge: 39
- Registriert: 14. Oktober 2008 19:50
mit der Datenbankverbindung ist alles ok, die erzeuge ich vor der QMainWindow Instanz
hier ist der ausschnitt aus der main...
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.
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
-
XxM4ST3RxX
- Beiträge: 39
- Registriert: 14. Oktober 2008 19:50
-
XxM4ST3RxX
- Beiträge: 39
- Registriert: 14. Oktober 2008 19:50
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 ....