einfaches qt- programm kompillieren...



  • ich habe gerade mit qt angefangen aber ich habe probleme mit dem kompillieren unter linux(auch mit konsolenanwendungen). könnte mir jemand erklären wie man anwendungen unter linux kompilliert?

    Das Beispiel Prog:

    #include <kapp.h>
    #include <qwidget.h>
    #include <iostream.h>
    
    class MyWindow : public QWidget
    {
    public:
    MyWindow() : QWidget() {}
    protected:
    virtual void mousePressEvent(QMouseEvent *);
    };
    
    void MyWindow::mousePressEvent(QMouseEvent *)
    {
    cout<<"Maustaste gedrückt"<<endl;
    }
    
    int main (int argc, char **argv)
    {
    KApplication app(argc, argv, "Widget Beispiel");
    
    MyWindow window;
    window.setGeometry(200,200,400,300);
    
    app.setMainWidget(&window);
    
    window.setCaption("QWidget Beispiel");
    
    window.show();
    return app.exec();
    }
    


  • Hallo,

    einfach mal das QT Tutorial angucken:
    http://doc.trolltech.com/3.3/tutorial1-01.html



  • Also erstens bassiert dein Code auf KDE-Klassen.
    KApplication - KDE Klasse
    #include <kapp.h> - KDE Include
    Also KDE basiert auf QT aber ich weiss es nicht wie man deinen Code kompiliert.

    Um aus deinem Code Qt Program zu machen müssen:
    KApplication gegen QApplication getauscht werden und
    kapp.h gegen qapplication.h

    Also der Code muss so aussehen:

    #include <qapplication.h>
    #include <qwidget.h> 
    #include <iostream.h> 
    
     class MyWindow : public QWidget 
     { 
     public: 
     MyWindow() : QWidget() {} 
     protected: 
     virtual void mousePressEvent(QMouseEvent *); 
     }; 
    
     void MyWindow::mousePressEvent(QMouseEvent *) 
     { 
     cout<<"Maustaste gedrückt"<<endl; 
     } 
    
     int main (int argc, char **argv) 
     { 
     QApplication app(argc, argv, "Widget Beispiel"); 
    
     MyWindow window; 
     window.setGeometry(200,200,400,300); 
    
     app.setMainWidget(&window); 
    
     window.setCaption("QWidget Beispiel"); 
    
     window.show(); 
     return app.exec(); 
     }
    

    Kompielieren kannst du ihn so:

    g++ -I$QTDIR/include -L$QTDIR/lib -lqt -o ziel quellencode.cpp
    

    Die Variable QTDIR muss natürlich richtig gesetzt werden, bei mir ist es /usr/lib/qt3.
    Und qt_devel Paket muss selbstverständlich instaliert sein.



  • Also erstens bassiert dein Code auf KDE-Klassen.
    KApplication - KDE Klasse
    #include <kapp.h> - KDE Include
    Also KDE basiert auf QT aber ich weiss es nicht wie man deinen Code kompiliert.

    Um aus deinem Code Qt Program zu machen müssen:
    KApplication gegen QApplication getauscht werden und
    kapp.h gegen qapplication.h

    Also der Code muss so aussehen:

    #include <qapplication.h>
    #include <qwidget.h> 
    #include <iostream.h> 
    
     class MyWindow : public QWidget 
     { 
     public: 
     MyWindow() : QWidget() {} 
     protected: 
     virtual void mousePressEvent(QMouseEvent *); 
     }; 
    
     void MyWindow::mousePressEvent(QMouseEvent *) 
     { 
     cout<<"Maustaste gedrückt"<<endl; 
     } 
    
     int main (int argc, char **argv) 
     { 
     QApplication app(argc, argv, "Widget Beispiel"); 
    
     MyWindow window; 
     window.setGeometry(200,200,400,300); 
    
     app.setMainWidget(&window); 
    
     window.setCaption("QWidget Beispiel"); 
    
     window.show(); 
     return app.exec(); 
     }
    

    Kompielieren kannst du ihn so:

    g++ -I$QTDIR/include -L$QTDIR/lib -lqt -o ziel quellencode.cpp
    

    Die Variable QTDIR muss natürlich richtig gesetzt werden, bei mir ist es /usr/lib/qt3.
    Und qt_devel Paket muss selbstverständlich instaliert sein.
    -----------------------------------------------------------------------

    Ich habe aus versehen Doppeltposting gemacht und weiss nicht wie ich ein Beitrag löschen soll, bitte also ein Mod dies zu tun.



  • Hi,

    du kannst das Programm in ein Verzeichnis abspeichern. Dort machst du ein:

    qmake -project

    Dann editierst du die entstandene .pro Datei so dass die beiden Zeilen drin sind:

    INCLUDEPATH += . (KDEDIR)/includeLIBS+=L(KDEDIR)/include LIBS += -L(KDEDIR)/lib -lkdecore

    Dabei sollte KDEDIR auf das Basisverzeichnis von KDE zeigen. Dann reicht ein

    qmake

    und zuletzt ein

    make



  • thx


Anmelden zum Antworten