Komische Compilerfehler bei Qt4



  • Hi Leute,
    ich hab grad mit Qt4 begonnen und wollt nur ein kleines prog schreiben, dass eigentlich gar nix macht. Es besteht eigentlich nur aus 'nem eigenen Widget, das so was ähnliches wie ein Schachbrett zeichnen soll.
    Leider kompilierts nicht, keine ahnung warum. Code und Fehler folgen:

    MapWidget.h

    #ifndef MapWidget
    #define MapWidget
    
    #include <QWidget>
    
    class MapWidget : public QWidget
    {
          Q_OBJECT
    public:
           MapWidget(QWidget *parent = 0);
    
    protected:
           void paintEvent(QPaintEvent *event);
    };
    
    #endif
    

    MapWidget.cpp

    #include <QPaintEvent>
    #include <QPainter>
    
    #include "MapWidget.h"
    
    MapWidget::MapWidget(QWidget *parent) : QWidget(parent)
    {
          //setPalette(QPalette(QColor(250, 250, 200)));
          //setAutoFillBackground(true);
    }
    
    void MapWidget::PaintEvent(QPaintEvent * /*event */ )
    {
         QPainter painter(this);
    
         painter.setPen(QT::NoPen);
    
         painter.translate(0, height());
    
         for(int i = 1; i < 100; i+=10) {
              if( i%2 == 0 ) {
                  painter.setBrusch(QT::black);
              else {
                  painter.setBrusch(QT::white); 
    
              painter.drawRect(QRect(i-1, 0, 10, 10));
         }
    }
    

    main.cpp

    #include <QApplication>
    
    #include "MapWidget.h"
    
    int main(int argc, char *argv[])
        {
            QApplication app(argc, argv);
            MapWidget mapWidget;
            mapWidget.setGeometry(0, 0, 100, 10);
            mapWidget.show();
            return app.exec();
        }
    

    joa und das hier schreibt mir mein Compiler (mingw 3.4.2):

    release\main.o main.cpp

    In file included from main.cpp:3:
    MapWidget.h:10: error: expected `)' before '*' token

    MapWidget.h:7: error: an anonymous union cannot have function members
    MapWidget.h:14: error: abstract declarator `<anonymous class>' used as declaration
    MapWidget.h:14: error: namespace-scope anonymous aggregates must be static

    main.cpp: In function int qMain(int, char**)': main.cpp:8: error:widget' undeclared (first use this function)
    main.cpp:8: error: (Each undeclared identifier is reported only once for each function it appears in.)
    main.cpp:8: error: expected identifier before ';' token
    main.cpp:9: error: `mapWidget' undeclared (first use this function)

    make.exe: *** [release\main.o] Error 1

    kann mir irgendwer helfen? Ich verzweifle hier noch...



  • MapWidget.h:10: error: expected `)' before '*' token
    

    Der Konstruktor-Funktionskopf im Header und in der Cpp-Datei stimmen nicht miteinander überein.

    Eventuell müsstest du noch <QPaintEvent> im Header inkludieren, damit das Kompilieren klappt.



  • ok, habs jetzt hinbekommen. hab es einfach noch einmal neu geschrieben und voila es hat funktioniert.


Anmelden zum Antworten