Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to call a function from another cpp file
Forum Updated to NodeBB v4.3 + New Features

How to call a function from another cpp file

Scheduled Pinned Locked Moved General and Desktop
21 Posts 3 Posters 9.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Offline
    I Offline
    Ildar
    wrote on last edited by
    #11

    See my above answer:

    @
    // call.h
    class call : public QObject
    {
    Q_OBJECT

    explicit call(QObject *parent)

    public slot:
    void open();
    }
    ...@

    1 Reply Last reply
    0
    • H Offline
      H Offline
      herculis
      wrote on last edited by
      #12

      i did what u suggested but its not working.Not getting any error but not working also.
      plz help

      1 Reply Last reply
      0
      • H Offline
        H Offline
        herculis
        wrote on last edited by
        #13

        @
        Header.h
        class ap
        {
        Q_OBJECT
        public slot:
        void open();
        }

        call.cpp
        include header.h
        {
        class ap:: open()
        {
        }
        }
        

        on.h
        include header.h
        {
        class on
        private:
        ap*m_call

        }

        on.cpp

        include header.h
        {
        

        m_call = new ap(this);
        connect(openButton,SIGNAL(clicked), m_call, SLOT(open));@

        1 Reply Last reply
        0
        • I Offline
          I Offline
          Ildar
          wrote on last edited by
          #14

          Try rename file names: you must have 4 files:
          call.h
          call.cpp
          on.h
          on.cpp

          And, please show to us all files acrtual contents, not pseudocode.

          1 Reply Last reply
          0
          • H Offline
            H Offline
            herculis
            wrote on last edited by
            #15

            i added header file in the program but then also its not working i have to create instance, with this it will work i guess i did that also means i created one object of the class where the function is and put that object in connect command but its not working please help
            can a one give me an exmaple or a link for "calling a function from other cpp file" so that i will get an idea how to do that.

            1 Reply Last reply
            0
            • I Offline
              I Offline
              Ildar
              wrote on last edited by
              #16

              Just create new project (Test) and add there files:

              @
              // call.h
              #ifndef CALL_H
              #define CALL_H

              #include <QObject>

              class call : public QObject
              {
              Q_OBJECT

              public:
              explicit call(QObject *parent = 0);

              public slots:
              void open();
              };

              #endif // CALL_H@

              @
              // call.cpp
              #include "call.h"
              #include <qdebug.h>

              call::call(QObject *parent): QObject(parent)
              {}

              void call::open()
              {
              qDebug() << "CALL";
              }
              @

              @
              // on.h
              #ifndef ON_H
              #define ON_H

              #include <QObject>
              #include "call.h"

              class on : public QObject
              {
              Q_OBJECT

              public:
              explicit on(QObject *parent = 0);

              signals:
              void mySignal();

              private:
              call *m_call;
              };

              #endif // ON_H
              @

              @
              // on.cpp
              #include "on.h"

              on::on(QObject *parent): QObject(parent)
              {
              m_call = new call(this);

              connect(this, &on::mySignal, m_call, &call::open);

              emit mySignal();
              }
              @

              @
              // main.cpp
              #include "on.h"

              int main(int argc, char *argv[])
              {
              on *myOn = new on();
              }
              @

              @
              // Test.pro
              HEADERS +=
              call.h
              on.h

              SOURCES +=
              call.cpp
              on.cpp
              main.cpp
              @

              1 Reply Last reply
              0
              • H Offline
                H Offline
                herculis
                wrote on last edited by
                #17

                Thanks this works but in my code its not working dont know why
                Thanks though.

                1 Reply Last reply
                0
                • H Offline
                  H Offline
                  herculis
                  wrote on last edited by
                  #18

                  i am getting error in my prog when i write
                  @m_call=new call (this)@
                  ''that no instance of constructor''

                  1 Reply Last reply
                  0
                  • I Offline
                    I Offline
                    Ildar
                    wrote on last edited by
                    #19

                    Simpify the code and show it.

                    1 Reply Last reply
                    0
                    • H Offline
                      H Offline
                      herculis
                      wrote on last edited by
                      #20

                      ok now i know the problem when i define the class contructore it has arguments in it thats why i am not able to create object.Do you know any solution regrading this how can i create object of a class whose constructor has arguments like bool*a,QWidget parent = 0
                      means
                      @call(bool
                      a ,QWidget *parent = 0,QObject *parent)@

                      1 Reply Last reply
                      0
                      • I Offline
                        I Offline
                        Ildar
                        wrote on last edited by
                        #21

                        Please, read books about C++ and Qt.

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved