QT Slot Problem



  • Hi ich habe mich neu in QT eingelesen und habe folgendes Problem.
    Ich habe da eine Funktion die ein Signal(sendbuf) auslöst(Bei Enter in lineedit) und anschliesend wird , sollte man schon verbunden sein mit

    connect( this, SIGNAL(sendbuf()),s,SLOT(WriteClient(infield->text())) );
    

    an den Client der im QLineEdit infield; befindliche Text gesendet .
    Allerdings wird der Slot nicht aufgerufen...
    Slot:
    public slots:
    void WriteClient(QString
    buf)
    {
    ...
    }

    Wenn ich das ganze aber ohne ÜbergabeParameter mache wird der Slot korrekt aufgerufen.

    Danke Vielmals



  • du kannst einem Slot nicht mehr Parameter mitgeben, als das Signal zur Verfuegung stellt (wobei ich mir da grad nicht sicher bin)

    so klappts auf alle Faelle nicht.
    Innerhalb der connect-Anweisung muss die Signatur des Signals und des Slots stehen, darueber kann also keine Parameteruebergabe erfolgen..

    in deinem konkreten Beispiel waere das so:

    // in deiner Header
    signals:
        sendbuf( const QString& );
    
    // in der cpp
    connect( this, SIGNAL( sendbuf( const QString& ) ), s, SLOT( writeClient( const QString& ) ) );
    
    emit sendbuf( infield->text() );
    

Anmelden zum Antworten