Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Cannot call a function



  • Hello, I cannot call a function from another function. I do not know what is wrong. I have a function that returns double :

        double calculateMathVectors();
    

    That is how it is defined in header under private: section. Then when I try to call it from another function as:

    void protocolForm::receiveMathSignals(QString selected1, QString selected2, QString operation, QString signalName)
    {
        protocolForm::calculateMathVectors();
    }
    

    At the beginning of the called function there is qDebug().

    double protocolForm::calculateMathVectors()
    {
        qDebug()<< "entered";
    .
    .
    .
    }
    

    But it never enters to that qDebug(). How might be wrong? Probably I am missing a very simple thing.



  • @GunkutA
    It looks like you should just call it via calculateMathVectors();. However, put a qDebug() into protocolForm::receiveMathSignal() first line, prove that is being called in the first place?



  • @GunkutA
    It looks like you should just call it via calculateMathVectors();. However, put a qDebug() into protocolForm::receiveMathSignal() first line, prove that is being called in the first place?



  • @GunkutA said in Cannot call a function:

    Probably I am missing a very simple thing.

    Perhaps you have to learn a little bit more C++ language basics?
    If you want to call a function from your class, simply call it!

    double protocolForm::calculateMathVectors()
    {
        qDebug()<< "entered";
        ...
    }
    void protocolForm::receiveMathSignals(QString selected1, QString selected2, QString operation, QString signalName)
    {
        calculateMathVectors();
    }
    

    Just another hint, it is recommended to use UpperCamelCase for class names and lowerCamelCase for function names.
    So your class name should be ProtocolForm.



  • @JonB There is a qDebug() in the first line of protocolForm::receiveMathSignal(). When I simply called calculateMathVectors(); still not entering the function sadly.



  • @KroMignon When I simply call it, still not printing the qDebug().



  • @GunkutA said in Cannot call a function:

    When I simply call it, still not printing the qDebug().

    Are you sure you are running the right code (e.g. do you have build it successfully)?
    Do you have tried to set breakpoint and start in debug mode?



  • @GunkutA said in Cannot call a function:

    @JonB There is a qDebug() in the first line of protocolForm::receiveMathSignal().

    No there isn't, you have shown the code of protocolForm::receiveMathSignals() method and there is no such statement.



  • @JonB Yes you are right, I did not connect that slot... My bad and thanks.



  • @KroMignon I forgot to connect signal and slots, my bad :( and thanks


Log in to reply