Qt5.3 Signal and Slots + Parameters

  • Ok having a bit of problems with connecting two parts of my program together firstly we have below the emitted signal being used (which i presume is correct).

    @CCTVForm * lCCTVForm = fFormController->getGUIForm();
    const uint8_t * lLCID = aLCID.value();

        *lCCTVForm << "LC Select - Check\r\n"
                   << "\tSequence Number: " << static_cast< int >(aSequenceNumber.value()) << "\r\n"
                   << "\tLCID: " << static_cast< int >(lLCID[0])
                                 << static_cast< int >(lLCID[1])
                                 << static_cast< int >(lLCID[2])
                                 << static_cast< int >(lLCID[3])
                                 << "\r\n"
                   << "\tLC Name: " << aName << "\r\n" 
                   << "\tCamera 1: " << aCamera1.lcid().id() << "\r\n"
                   << "\tCamera 2: " << aCamera2.lcid().id() << "\r\n"
                   << sendToForm;
        emit emit_camera_info(aCamera1.lcid().id(),aCamera2.lcid().id());@

    Inside the .hpp file
    void emit_camera_info(QString,QString);@

    Then on my cctv form I want to be able to pass the two camera LCID's to CCTVForm.

    @ // Create the widgets
    cctv_mplayer_wrapper *Cameras = new cctv_mplayer_wrapper();

    // Add to the form
    CCTVController *Control = new CCTVController();


    .hpp file
    @void update_camera_info(QString Camera1, QString Camera2);@

    It's currently failing with
    bq. C:\Software\lxc - Copy\cctv\src\cctv_form.cpp:274: error: expected primary-expression before ',' token

    As you can imagine I'm a bit lost on this as it seems to me to be a correct connect statement. If anyone has an idea how this is caused I would be very grateful.

  • Hi,

    You are mixing up the two syntaxes to connect signals and slots.

    The first form uses macros and needs function parameters:

    @QObject::connect(&a, SIGNAL(valueChanged(int)),&b, SLOT(setValue(int)));@

    The second form uses pointer to member functions and doesn't parameters:

    @ QObject::connect(&a, &Counter::valueChanged,&b, &Counter::setValue);@

    Good luck!

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.