Seite 1 von 2

Syntax Fehler

Verfasst: 8. Oktober 2008 09:18
von reuabreliz
Fehlermeldung: In file included from src/mainwindowimpl.cpp:1:
src/mainwindowimpl.h:21: Fehler: mehrere Typen in einer Deklaration
make: *** [build/mainwindowimpl.o] Fehler 1


Wenn ich MyStandardItemModel.h nicht inkludiere dann gibt es keine Fehlermeldung.
Wenn ich MyStandardItemModel.h vor #include <QMainWindow> und "ui_mainwindow.h" inkludiere gibt es die Fehlermeldung:In file included from /usr/include/qt4/QtGui/qwidget.h:44,
from /usr/include/qt4/QtGui/qmainwindow.h:41,
from /usr/include/qt4/QtGui/QMainWindow:1,
from src/mainwindowimpl.h:5,
from src/mainwindowimpl.cpp:1:
/usr/include/qt4/QtGui/qpalette.h:49: Fehler: expected initializer before »QtGuiModule«
make: *** [build/mainwindowimpl.o] Fehler 1


Könnte mir da bitte wer helfen, wird eher ein Fehler für erfahrene C++ Programmierer sein der ich nicht bin. Danke schon im Voraus

mainwindowimpl.h

Code: Alles auswählen

#ifndef MAINWINDOWIMPL_H
#define MAINWINDOWIMPL_H


#include <QMainWindow>
#include "ui_mainwindow.h"
#include "MyStandardItemModel.h" //FEHLERQUELLE


class MainWindowImpl : public QMainWindow, public Ui::MainWindow
{
	Q_OBJECT
	
	public:
		MainWindowImpl( QWidget * parent = 0, Qt::WFlags f = 0 );
		~MainWindowImpl();
	
	private slots:
		void newPruefung();
		void showPruefungen();
};

#endif

mainwindowimpl.cpp

Code: Alles auswählen

#include "mainwindowimpl.h"


MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f) : QMainWindow(parent, f)
{
	setupUi(this);
}

void MainWindowImpl::showPruefungen()
{
	tv_Pruefungen->setModel(new MyStandartItemModel());
}

void MainWindowImpl::newPruefung()
{
	
}

MainWindowImpl::~MainWindowImpl()
{

}

MyStandardItemModel.h

Code: Alles auswählen

#ifndef __MYSTANDARDITEMMODEL_H__
#define __MYSTANDARDITEMMODEL_H__

#include <qstandarditemmodel.h>
#include "qsqldatabase.h"
#include "myDatabase.h"

class MyStandartItemModel : public QStandardItemModel 
{
	private:
		MyDatabase *myDb;
		
	public:
		MyStandartItemModel();
		~MyStandartItemModel();
		
		void setItems(QString auswahlKriterium);

}

#endif // __MYSTANDARDITEMMODEL_H__
MyStandardItemModel.cpp

Code: Alles auswählen

#include "MyStandardItemModel.h"
#include "qsqlquery.h"

MyStandartItemModel::MyStandartItemModel() : QStandardItemModel()
{
	myDb = new MyDatabase("verwaltung");
}

void MyStandartItemModel::setItems(QString auswahlKriterium)
{
	QSqlQuery myQuery(myDb->myDbQuery("Select * from ..."));
	int i=0;
	
	while(myQuery.next())
	{
		setItem(i,0, new QStandardItem(myQuery.value(0).toString()));
		setItem(i,1, new QStandardItem(myQuery.value(1).toString()));
		setItem(i,2, new QStandardItem(myQuery.value(2).toString()));
		setItem(i,3, new QStandardItem(myQuery.value(3).toString()));
		setItem(i,4, new QStandardItem(myQuery.value(4).toString()));
		setItem(i,5, new QStandardItem(myQuery.value(5).toString()));
		setItem(i,6, new QStandardItem(myQuery.value(6).toString()));
		i++;
	}
}



MyStandartItemModel::~MyStandartItemModel()
{
	
}

Verfasst: 8. Oktober 2008 09:48
von upsala

Code: Alles auswählen

      
       void setItems(QString auswahlKriterium); 
 
 } 
; vergessen

Danke

Verfasst: 8. Oktober 2008 16:45
von reuabreliz
Oh mein Gott!!!! Mann o mann mit dem Strichpunkt am ende einer klasse komm ich noch nicht zu recht. Danke Mann :D

Neues Problem

Verfasst: 8. Oktober 2008 23:27
von reuabreliz
Also dass hätte ich Mal aba jetzt ist noch ein Fehler hinzugekommen den ich nicht verstehe:
/usr/bin/ld: cannot find -lQtOpenGL
collect2: ld gab 1 als Ende-Status zurück
make: *** [bin/Reifepruefung] Fehler 1

Verfasst: 9. Oktober 2008 06:29
von Christian81
Qt ohne OpenGL lib kompiliert.

Verfasst: 9. Oktober 2008 13:52
von reuabreliz
und wie kann ich die mitkompilieren? WEiß is wahrscheinlich ne dumme Frage aber ich kenn mich mit QT noch nicht so gut technisch aus. Syntax bekomme ich halbwegs hin.

Verfasst: 9. Oktober 2008 13:57
von Christian81
Da ich nicht weiß wie/woher Du Qt installiert hast - k.A. Wenn Du es mit deinem Paketmananger installiert hast, dann fehlt Dir wohl das qt-opengl Paket.

Verfasst: 9. Oktober 2008 19:19
von reuabreliz
Also ich habe mein qt mit dem Paketmanager apt installiert. In welchem Paket wäre den qt-opengl enthalten oder welches müsste ich installieren, dass es funktioniert. Und muss ich was in die Projektdatei (.pro) hinzufügen

Verfasst: 9. Oktober 2008 19:29
von upsala
In welchem Paket wäre den qt-opengl enthalten oder welches müsste ich installieren
Was ergibt den eine Suche mit dem Paket-Manager?

Verfasst: 9. Oktober 2008 20:51
von reuabreliz
Also wenn ich apt-get install qt und dann tab drücke, kommen diese Einträge:
root@karotte:~# apt-get install qt
qt3-apps-dev qt4-doc qtnx
qt3-assistant qt4-linguist qtoctave
qt3-designer qt4-qtconfig qtodo
qt3-dev-tools qtads qtorrent
qt3-dev-tools-compat qtcurve qtparted
qt3-dev-tools-embedded qt-designer qtpfsgui
qt3-doc qt-designer-doc qtpfsgui-data
qt3-examples qtdmm qtractor
qt3-linguist qt-doc qtsmbstatus-client
qt3-qtconfig qtemu qtsmbstatus-server
qt3-tools qterm qtstalker
qt4-assistant qtiplot qtstalker-doc
qt4-designer qtiplot-doc qt-x11-free-dbg
qt4-dev-tools qtjambi-demo

Verfasst: 9. Oktober 2008 20:54
von Christian81
Da sind ja überhaupt keine qt4-libs installiert...

Verfasst: 9. Oktober 2008 21:36
von reuabreliz
Ach hast du gemeint was ich schon installiert habe, weil dass sind die packages was ich gefunden habe was mit qt anfangen und ich noch runterladen kann. Wie kann ich schaun was ich für qt programme installiert habe.

Verfasst: 9. Oktober 2008 21:52
von MiKla
dpkg -l | grep qt

Verfasst: 9. Oktober 2008 22:14
von reuabreliz
Ja ich hab das ganze Programm einem guten Freund geschickt. Der ist Softwareentwickler und is verdammt gut drauf in QT und bei ihm hats auch nicht gefunzt. Werd wohl irgendeinen Inhaltlichen Fehler haben in der Struktur. Ich werde von nun an kein qdeveloper mehr verwenden und kein qdesigner. JEtzt schreibe ich mir alles selber. Probier das Programm jetzt selber zu schreiben auch gui viel. klappts dann. :)

Verfasst: 9. Oktober 2008 23:19
von reuabreliz
Aba trotzdem danke für die Zeit und die Ratschläge :)