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.
  • H Offline
    H Offline
    herculis
    wrote on last edited by
    #10

    what u updated ???

    1 Reply Last reply
    0
    • 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