[gelöst] Anfängerproblem: compilieren
Verfasst: 25. November 2007 00:48
hi,
eigentlich habe ich bereits einige einfache Qt-Programme hingekriegt, aber jetzt stehe ich auf dem Schlauch. Ich wollte einige Tests mit den Grafikfunktioen von Qt machen.
1. Mit Designer ein QWidget namens Form mit Button und einem QGraphicsView namens graphicsView erzeugt
2. graphics.h
3. graphics.cpp dazu:
4. das graphics_main.cpp dazu:
Mit graphics.h ist der Comiler zufrieden. Aber in graphics.cpp meldet er (Fehler1)
error: new types may not be defined in a return type
error: return type specification for constructor invalid
note: (perhaps a semicolon is missing after the definition of 'Grafiktest')
und in graphics_main.cpp (Fehler2)
error: new types may not be defined in a return type
error: two or more data types in declaration of ‘main’
error: ‘::main’ must return ‘int’ <--- in anderen funktionierenden Programmen sieht main genauso aus
note: (perhaps a semicolon is missing after the definition of ‘Grafiktest’)
Ausserdem werden 2 Fehler in moc_graphics.cpp gemeldet. Diese Datei wird jedoch automatisch erzeugt!
Ich bin ratlos
eigentlich habe ich bereits einige einfache Qt-Programme hingekriegt, aber jetzt stehe ich auf dem Schlauch. Ich wollte einige Tests mit den Grafikfunktioen von Qt machen.
1. Mit Designer ein QWidget namens Form mit Button und einem QGraphicsView namens graphicsView erzeugt
2. graphics.h
Code: Alles auswählen
#include <QDialog>
#include "ui_Grafiktest.h"
class Grafiktest : public QDialog, private Ui::Form
{
Q_OBJECT
public:
Grafiktest(QWidget *parent=0);
private slots:
void on_pushButton_clicked();
protected:
void paintEvent(QPaintEvent * event);
QPixmap bild;
}
Code: Alles auswählen
#include <QtGui>
#include <QtCore> // für QString, etc.
#include <QDialog>
#include "graphics.h"
/* functions der Klasse Grafiktest: */
Grafiktest::Grafiktest(QWidget *parent) : QDialog(parent) <--hier Fehler1
{ /* Constructor von Grafiktest */
setupUi(this);
}
void Grafiktest::on_pushButton_clicked() {
QString fileName = QFileDialog::getOpenFileName(this, "Bilddatei wählen",
"/mnt/data/Daten/Bilder");
bild.load(fileName);
}
void Grafiktest::paintEvent(QPaintEvent * /* event */) {
QPainter painter(graphicsView);
painter.drawPixmap(0, 0, bild);
painter.end();
}
Code: Alles auswählen
#include <QApplication>
#include "graphics.h"
int main(int argc, char *argv[]) <-- hier Fehler2
{
// verzStr=argv[0]; g++ kennt verzStr hier nicht???
QApplication app(argc, argv);
Grafiktest uiwin;
uiwin.show();
return app.exec();
}
error: new types may not be defined in a return type
error: return type specification for constructor invalid
note: (perhaps a semicolon is missing after the definition of 'Grafiktest')
und in graphics_main.cpp (Fehler2)
error: new types may not be defined in a return type
error: two or more data types in declaration of ‘main’
error: ‘::main’ must return ‘int’ <--- in anderen funktionierenden Programmen sieht main genauso aus
note: (perhaps a semicolon is missing after the definition of ‘Grafiktest’)
Ausserdem werden 2 Fehler in moc_graphics.cpp gemeldet. Diese Datei wird jedoch automatisch erzeugt!
Ich bin ratlos