QT Sloty Problem



  • hi,
    ich habe mein mal probiert mir QT Sloty zu Programmieren.
    geht einfach ned, der slot verbindet ned!! ich machs mir dem gcc (g++) kann mir einer Helfen?

    danke matze

    #include <qapplication.h>
    #include <qpushbutton.h>
    #include <qfont.h>
    #include <qmessagebox.h>
    
    class MyWidget : public QWidget
    {
    public slots:
        void my_slot();
    public:
        MyWidget( QWidget *parent=0, const char *name=0 );
    
    };
    
    void MyWidget::my_slot()
    {
     QMessageBox::about(this, "About Word2HTML","Hello World");
    }
    
    MyWidget::MyWidget( QWidget *parent, const char *name )
            : QWidget( parent, name )
    {
        setMinimumSize( 200, 120 );
        setMaximumSize( 200, 120 );
    
        QPushButton *quit = new QPushButton(this);
    
        quit->setGeometry(10,10,80,25);
        quit->setText("Button");
    
        connect(quit, SIGNAL(clicked()), this, SLOT(my_slot()) );
    }
    
    int main( int argc, char **argv )
    {
        QApplication a( argc, argv );
    
        MyWidget w;
        w.setGeometry( 100, 100, 200, 120 );
        a.setMainWidget( &w );
        w.show();
        return a.exec();
    }
    

    [edit]benutz mal bessere Topics 😡 [/edit]



  • Um Signale zu empfangen, musst du in den Header der Klasse die Zeile Q_OBJECT einfügen:

    class MyWidget : public QWidget 
    { 
        Q_OBJECT
    public slots: 
        void my_slot(); 
    public: 
        MyWidget( QWidget *parent=0, const char *name=0 ); 
    
    };
    

    Dann musst du noch das Programm "moc" aufrufen, in der Form:
    moc MyWidget.h -o moc_MyWidget.cpp

    Die Datei musst du dann auch noch beim gcc angeben!



  • was ist Moc gibts bei mir ned!
    ich wollte es mit dem Kdevelop machen kann ich das jetzt ned oder wie ??


Anmelden zum Antworten