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 can I move my normal c++ main() function code to qt main function?
Forum Updated to NodeBB v4.3 + New Features

How can I move my normal c++ main() function code to qt main function?

Scheduled Pinned Locked Moved Solved General and Desktop
24 Posts 3 Posters 7.0k 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.
  • A Ashish Tupate
    8 Jan 2018, 09:26

    @jsulm I want to write functions from file test_encoder from the main function to somewhere in other file but not inside the main function. How can I write these function? Because in qt in the function we cant write these functions.

    A Offline
    A Offline
    aha_1980
    Lifetime Qt Champion
    wrote on 8 Jan 2018, 09:35 last edited by aha_1980 1 Aug 2018, 09:36
    #4

    Hi @Ashish-Tupate,

    given that your Qt main.cpp looks like the following:

    #include "mainwindow.h"
    
    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
    
        return a.exec();
    }
    

    a starting point could look like this:

    #include "mainwindow.h"
    #include "rotary_encoder.hpp"
    
    #include <QApplication>
    
    #include <iostream>
    #include <pigpio.h>
    
    void callback(int way)
    {
       static int pos = 0;
       pos += way;
       std::cout << "pos=" << pos << std::endl;
    }
    
    int main(int argc, char *argv[])
    {
        if (gpioInitialise() < 0) 
            return 1;
        e_decoder dec(7, 8, callback);
    
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
        int result = a.exec();
        
        dec.re_cancel();
        gpioTerminate();
        
        return result;
    }
    

    Qt has to stay free or it will die.

    A 1 Reply Last reply 8 Jan 2018, 10:03
    1
    • A Ashish Tupate
      8 Jan 2018, 09:26

      @jsulm I want to write functions from file test_encoder from the main function to somewhere in other file but not inside the main function. How can I write these function? Because in qt in the function we cant write these functions.

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 8 Jan 2018, 09:37 last edited by
      #5

      @Ashish-Tupate Sorry, I don't really get what you mean. Can you describe it better, maybe write some code? It is completely unrelated to Qt - Qt is not a programming language. You write your functions as always in C++ and call them in your main function.
      Lets say you have your main function in a.cpp. In b.h/b.cpp you define a function void do_something(), then in a.cpp you can call it like:

      //b.h
      void do_something();
      
      // b.cpp
      #include "b.h"
      void do_something()
      {
      }
      
      // a.cpp
      #include "b.h" // to be able to call the function
      int main()
      {
          do_something();
          return 0;
      }
      

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      A 1 Reply Last reply 8 Jan 2018, 10:10
      0
      • A aha_1980
        8 Jan 2018, 09:35

        Hi @Ashish-Tupate,

        given that your Qt main.cpp looks like the following:

        #include "mainwindow.h"
        
        #include <QApplication>
        
        int main(int argc, char *argv[])
        {
            QApplication a(argc, argv);
            MainWindow w;
            w.show();
        
            return a.exec();
        }
        

        a starting point could look like this:

        #include "mainwindow.h"
        #include "rotary_encoder.hpp"
        
        #include <QApplication>
        
        #include <iostream>
        #include <pigpio.h>
        
        void callback(int way)
        {
           static int pos = 0;
           pos += way;
           std::cout << "pos=" << pos << std::endl;
        }
        
        int main(int argc, char *argv[])
        {
            if (gpioInitialise() < 0) 
                return 1;
            e_decoder dec(7, 8, callback);
        
            QApplication a(argc, argv);
            MainWindow w;
            w.show();
            int result = a.exec();
            
            dec.re_cancel();
            gpioTerminate();
            
            return result;
        }
        
        A Offline
        A Offline
        Ashish Tupate
        wrote on 8 Jan 2018, 10:03 last edited by tekojo 1 Sept 2018, 07:56
        #6

        @aha_1980 said in How can I move my normal c++ main() function code to qt main function?:

        int main(int argc, char *argv[])
        {
        if (gpioInitialise() < 0)
        return 1;
        e_decoder dec(7, 8, callback);

        QApplication a(argc, argv);
        MainWindow w;
        w.show();
        int result = a.exec();
        
        dec.re_cancel();
        gpioTerminate();
        
        return result;
        

        }

        I dont want to write

        if (gpioInitialise() < 0) 
                return 1;
            e_decoder dec(7, 8, callback);
        
            QApplication a(argc, argv);
            MainWindow w;
            w.show();
            int result = a.exec();
            
            dec.re_cancel();
            gpioTerminate();
        

        code inside main function
        So where should i write this code?

        1 Reply Last reply
        0
        • J jsulm
          8 Jan 2018, 09:37

          @Ashish-Tupate Sorry, I don't really get what you mean. Can you describe it better, maybe write some code? It is completely unrelated to Qt - Qt is not a programming language. You write your functions as always in C++ and call them in your main function.
          Lets say you have your main function in a.cpp. In b.h/b.cpp you define a function void do_something(), then in a.cpp you can call it like:

          //b.h
          void do_something();
          
          // b.cpp
          #include "b.h"
          void do_something()
          {
          }
          
          // a.cpp
          #include "b.h" // to be able to call the function
          int main()
          {
              do_something();
              return 0;
          }
          
          A Offline
          A Offline
          Ashish Tupate
          wrote on 8 Jan 2018, 10:10 last edited by
          #7

          @jsulm Thank you but If I want to call do_something();
          not from main() because we cant call it in qt like this. So, then from where should I call?

          J 1 Reply Last reply 8 Jan 2018, 10:34
          0
          • A Ashish Tupate
            8 Jan 2018, 10:10

            @jsulm Thank you but If I want to call do_something();
            not from main() because we cant call it in qt like this. So, then from where should I call?

            J Offline
            J Offline
            jsulm
            Lifetime Qt Champion
            wrote on 8 Jan 2018, 10:34 last edited by
            #8

            @Ashish-Tupate I don't understand the problem. Call it where you need to call it. You as developer have to know where to call it.
            Which code exactly you don't want to call in main?
            QApplication instance is usually created in main, same for main window. But you can create both somewhere else.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            A 1 Reply Last reply 8 Jan 2018, 12:55
            1
            • J jsulm
              8 Jan 2018, 10:34

              @Ashish-Tupate I don't understand the problem. Call it where you need to call it. You as developer have to know where to call it.
              Which code exactly you don't want to call in main?
              QApplication instance is usually created in main, same for main window. But you can create both somewhere else.

              A Offline
              A Offline
              Ashish Tupate
              wrote on 8 Jan 2018, 12:55 last edited by
              #9

              @jsulm I cant write the main function in qt like this:

              void callback(int way)
              {
                 static int pos = 0;
                 pos += way;
                 std::cout << "pos=" << pos << std::endl;
              } 
              
              int main(int argc, char *argv[])
              {
                  if (gpioInitialise() < 0) return 1;
                  re_decoder dec(7, 8, callback);
              
                  QApplication a(argc, argv);
                  Dialog w;
                  w.show();
              
                  sleep(3000);
                  dec.re_cancel();
                  gpioTerminate();
              
                  return a.exec();
              }
              
              
              
              

              So where can I write this code?

              J 1 Reply Last reply 8 Jan 2018, 12:58
              0
              • A Ashish Tupate
                8 Jan 2018, 12:55

                @jsulm I cant write the main function in qt like this:

                void callback(int way)
                {
                   static int pos = 0;
                   pos += way;
                   std::cout << "pos=" << pos << std::endl;
                } 
                
                int main(int argc, char *argv[])
                {
                    if (gpioInitialise() < 0) return 1;
                    re_decoder dec(7, 8, callback);
                
                    QApplication a(argc, argv);
                    Dialog w;
                    w.show();
                
                    sleep(3000);
                    dec.re_cancel();
                    gpioTerminate();
                
                    return a.exec();
                }
                
                
                
                

                So where can I write this code?

                J Offline
                J Offline
                jsulm
                Lifetime Qt Champion
                wrote on 8 Jan 2018, 12:58 last edited by
                #10

                @Ashish-Tupate I'm guessing now what the problem is: you want to execute this code when the app terminates, right?

                dec.re_cancel();
                gpioTerminate();
                

                Then do it like this:

                int main(int argc, char *argv[])
                {
                    if (gpioInitialise() < 0) return 1;
                    re_decoder dec(7, 8, callback);
                
                    QApplication a(argc, argv);
                    Dialog w;
                    w.show();
                
                    int result = a.exec(); // exec() blocks until you close the app
                
                    dec.re_cancel();
                    gpioTerminate();
                
                    return result;
                }

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                A 1 Reply Last reply 8 Jan 2018, 15:02
                4
                • J jsulm
                  8 Jan 2018, 12:58

                  @Ashish-Tupate I'm guessing now what the problem is: you want to execute this code when the app terminates, right?

                  dec.re_cancel();
                  gpioTerminate();
                  

                  Then do it like this:

                  int main(int argc, char *argv[])
                  {
                      if (gpioInitialise() < 0) return 1;
                      re_decoder dec(7, 8, callback);
                  
                      QApplication a(argc, argv);
                      Dialog w;
                      w.show();
                  
                      int result = a.exec(); // exec() blocks until you close the app
                  
                      dec.re_cancel();
                      gpioTerminate();
                  
                      return result;
                  }
                  A Offline
                  A Offline
                  Ashish Tupate
                  wrote on 8 Jan 2018, 15:02 last edited by
                  #11

                  @jsulm Thank you.

                  A 1 Reply Last reply 8 Jan 2018, 17:34
                  0
                  • A Ashish Tupate
                    8 Jan 2018, 15:02

                    @jsulm Thank you.

                    A Offline
                    A Offline
                    aha_1980
                    Lifetime Qt Champion
                    wrote on 8 Jan 2018, 17:34 last edited by aha_1980 1 Aug 2018, 17:34
                    #12

                    @Ashish-Tupate said in How can I move my normal c++ main() function code to qt main function?:

                    @jsulm Thank you.

                    I don't get it. That is the same code I posted this morning (one comment more) and you said it is not what you want...

                    Qt has to stay free or it will die.

                    A 1 Reply Last reply 9 Jan 2018, 05:30
                    2
                    • A aha_1980
                      8 Jan 2018, 17:34

                      @Ashish-Tupate said in How can I move my normal c++ main() function code to qt main function?:

                      @jsulm Thank you.

                      I don't get it. That is the same code I posted this morning (one comment more) and you said it is not what you want...

                      A Offline
                      A Offline
                      Ashish Tupate
                      wrote on 9 Jan 2018, 05:30 last edited by Ashish Tupate 1 Sept 2018, 06:07
                      #13

                      @aha_1980 I still didn't get the answer from this forum and the answer by the jsulm is not the expected answer for me. What I want is to write main() as it is like this

                      int main(int argc, char *argv[])
                      {
                         QApplication a(argc, argv);
                         MainWindow w;
                         w.show();
                      
                         return a.exec();
                      }
                      

                      and the code inside this

                      if (gpioInitialise() < 0) 
                              return 1;
                      e_decoder dec(7, 8, callback);
                      sleep(50);
                      dec.re_cancel();
                      gpioTerminate();
                      

                      and this code

                      void callback(int way)
                      {
                         static int pos = 0;
                         pos += way;
                         std::cout << "pos=" << pos << std::endl;
                      }
                      

                      I want to write somewhere in other file. Like I can create a new file (ex. test.cpp) and write it down there. So the code should work. Is it possible?I have tried to write the code.
                      encodercount.h

                      #ifndef ENCODERCOUNT_H
                      #define ENCODERCOUNT_H
                      
                      namespace Encoder {
                      class EncoderCount;
                      }
                      
                      class EncoderCount
                      {
                      public:
                          explicit EncoderCount();
                          ~EncoderCount();
                          int pigpiotest();
                      
                      private:
                          static void callback(int way);
                      };
                      

                      encodercount.cpp

                      #include <pigpio.h>
                      #include "rotary_encoder.hpp"
                      #include <iostream>
                      #include <stdio.h>
                      #include <unistd.h>
                      
                      static int pos = 0;
                      void EncoderCount::callback(int way)
                      {
                             pos += way;
                             qDebug() << "pos=" << pos ;
                      }
                       int EncoderCount::pigpiotest()
                       {
                           if (gpioInitialise() < 0) return 1;
                      
                           re_decoder dec(8, 11, callback);
                      
                           sleep(50);
                      
                           dec.re_cancel();
                      
                           gpioTerminate();
                      
                       }
                      

                      Still no output.

                      A J 2 Replies Last reply 9 Jan 2018, 05:43
                      0
                      • A Ashish Tupate
                        9 Jan 2018, 05:30

                        @aha_1980 I still didn't get the answer from this forum and the answer by the jsulm is not the expected answer for me. What I want is to write main() as it is like this

                        int main(int argc, char *argv[])
                        {
                           QApplication a(argc, argv);
                           MainWindow w;
                           w.show();
                        
                           return a.exec();
                        }
                        

                        and the code inside this

                        if (gpioInitialise() < 0) 
                                return 1;
                        e_decoder dec(7, 8, callback);
                        sleep(50);
                        dec.re_cancel();
                        gpioTerminate();
                        

                        and this code

                        void callback(int way)
                        {
                           static int pos = 0;
                           pos += way;
                           std::cout << "pos=" << pos << std::endl;
                        }
                        

                        I want to write somewhere in other file. Like I can create a new file (ex. test.cpp) and write it down there. So the code should work. Is it possible?I have tried to write the code.
                        encodercount.h

                        #ifndef ENCODERCOUNT_H
                        #define ENCODERCOUNT_H
                        
                        namespace Encoder {
                        class EncoderCount;
                        }
                        
                        class EncoderCount
                        {
                        public:
                            explicit EncoderCount();
                            ~EncoderCount();
                            int pigpiotest();
                        
                        private:
                            static void callback(int way);
                        };
                        

                        encodercount.cpp

                        #include <pigpio.h>
                        #include "rotary_encoder.hpp"
                        #include <iostream>
                        #include <stdio.h>
                        #include <unistd.h>
                        
                        static int pos = 0;
                        void EncoderCount::callback(int way)
                        {
                               pos += way;
                               qDebug() << "pos=" << pos ;
                        }
                         int EncoderCount::pigpiotest()
                         {
                             if (gpioInitialise() < 0) return 1;
                        
                             re_decoder dec(8, 11, callback);
                        
                             sleep(50);
                        
                             dec.re_cancel();
                        
                             gpioTerminate();
                        
                         }
                        

                        Still no output.

                        A Offline
                        A Offline
                        aha_1980
                        Lifetime Qt Champion
                        wrote on 9 Jan 2018, 05:43 last edited by
                        #14

                        @Ashish-Tupate said in How can I move my normal c++ main() function code to qt main function?:

                        So the code should work. Is it possible?

                        Yes, of course this is possible - it's a very common task for C++ programmers.

                        But did you actually try what I and @jsulm suggested you? I wrote "as a starting point". This should work with minimum change to your existing program.

                        If you want the code to reside in a separate file, you will have to refactor it. The sleep can not be used in Qt GUI programs! You can create the functions in a new file decoder.cpp:

                        void callback()
                        {
                            //...
                        }
                        
                        void initDecoder()
                        {
                            if (gpioInitialise() < 0) 
                                return 1;
                             e_decoder dec(7, 8, callback);
                        }
                        
                        void stopDecoder()
                        {
                            dec.re_cancel();
                            gpioTerminate();
                        }
                        

                        and then call them, for example from main::

                        #include "decoder.h"
                        
                        int main(int argc, char *argv[])
                        {
                            initEncoder();
                        
                            QApplication a(argc, argv);
                            Dialog w;
                            w.show();
                        
                            int result = a.exec(); // exec() blocks until you close the app
                        
                            stopEncoder();
                        
                            return result;
                        }
                        

                        But better try the examples we gave you yesterday first.

                        Qt has to stay free or it will die.

                        1 Reply Last reply
                        2
                        • A Ashish Tupate
                          9 Jan 2018, 05:30

                          @aha_1980 I still didn't get the answer from this forum and the answer by the jsulm is not the expected answer for me. What I want is to write main() as it is like this

                          int main(int argc, char *argv[])
                          {
                             QApplication a(argc, argv);
                             MainWindow w;
                             w.show();
                          
                             return a.exec();
                          }
                          

                          and the code inside this

                          if (gpioInitialise() < 0) 
                                  return 1;
                          e_decoder dec(7, 8, callback);
                          sleep(50);
                          dec.re_cancel();
                          gpioTerminate();
                          

                          and this code

                          void callback(int way)
                          {
                             static int pos = 0;
                             pos += way;
                             std::cout << "pos=" << pos << std::endl;
                          }
                          

                          I want to write somewhere in other file. Like I can create a new file (ex. test.cpp) and write it down there. So the code should work. Is it possible?I have tried to write the code.
                          encodercount.h

                          #ifndef ENCODERCOUNT_H
                          #define ENCODERCOUNT_H
                          
                          namespace Encoder {
                          class EncoderCount;
                          }
                          
                          class EncoderCount
                          {
                          public:
                              explicit EncoderCount();
                              ~EncoderCount();
                              int pigpiotest();
                          
                          private:
                              static void callback(int way);
                          };
                          

                          encodercount.cpp

                          #include <pigpio.h>
                          #include "rotary_encoder.hpp"
                          #include <iostream>
                          #include <stdio.h>
                          #include <unistd.h>
                          
                          static int pos = 0;
                          void EncoderCount::callback(int way)
                          {
                                 pos += way;
                                 qDebug() << "pos=" << pos ;
                          }
                           int EncoderCount::pigpiotest()
                           {
                               if (gpioInitialise() < 0) return 1;
                          
                               re_decoder dec(8, 11, callback);
                          
                               sleep(50);
                          
                               dec.re_cancel();
                          
                               gpioTerminate();
                          
                           }
                          

                          Still no output.

                          J Offline
                          J Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on 9 Jan 2018, 06:01 last edited by
                          #15

                          @Ashish-Tupate said in How can I move my normal c++ main() function code to qt main function?:

                          Is it possible?

                          Sure it is, why not?

                          The code you put in test.cpp - is it called somewhere? I mean: do you use class EncoderCount somewhere? You're using a member function (method) as a callback - this will not work as you need a function.

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          A 1 Reply Last reply 9 Jan 2018, 06:10
                          1
                          • J jsulm
                            9 Jan 2018, 06:01

                            @Ashish-Tupate said in How can I move my normal c++ main() function code to qt main function?:

                            Is it possible?

                            Sure it is, why not?

                            The code you put in test.cpp - is it called somewhere? I mean: do you use class EncoderCount somewhere? You're using a member function (method) as a callback - this will not work as you need a function.

                            A Offline
                            A Offline
                            Ashish Tupate
                            wrote on 9 Jan 2018, 06:10 last edited by
                            #16

                            @jsulm test.cpp is encodercount.cpp and yes it is not working.

                            J 1 Reply Last reply 9 Jan 2018, 06:13
                            0
                            • A Ashish Tupate
                              9 Jan 2018, 06:10

                              @jsulm test.cpp is encodercount.cpp and yes it is not working.

                              J Offline
                              J Offline
                              jsulm
                              Lifetime Qt Champion
                              wrote on 9 Jan 2018, 06:13 last edited by
                              #17

                              @Ashish-Tupate What is not working? Can you please describe the problem clearly? Post the error message?

                              https://forum.qt.io/topic/113070/qt-code-of-conduct

                              A 1 Reply Last reply 9 Jan 2018, 06:25
                              1
                              • J jsulm
                                9 Jan 2018, 06:13

                                @Ashish-Tupate What is not working? Can you please describe the problem clearly? Post the error message?

                                A Offline
                                A Offline
                                Ashish Tupate
                                wrote on 9 Jan 2018, 06:25 last edited by Ashish Tupate 1 Sept 2018, 06:25
                                #18

                                @jsulm my main.cpp file look like this

                                #include "encodercount.h"
                                
                                using namespace std;
                                
                                int main(int argc, char *argv[])
                                {
                                    initEncoder();
                                
                                    QApplication app(argc, argv);
                                    Dialog w;
                                    w.show();
                                
                                    int result = a.exec(); // exec() blocks until you close the app
                                    stopEncoder();
                                
                                    return app.exec();
                                }
                                

                                and encodercount.h

                                #ifndef ENCODERCOUNT_H
                                #define ENCODERCOUNT_H
                                
                                #include <rotary_encoder.hpp>
                                
                                
                                namespace Encoder {
                                class EncoderCount;
                                }
                                
                                class EncoderCount
                                {
                                public:
                                    explicit EncoderCount();
                                    ~EncoderCount();
                                
                                    void initDecoder();
                                    void stopDecoder();
                                
                                };
                                
                                
                                #endif // ENCODERCOUNT_H
                                
                                

                                encodercount.cpp

                                void callback(int way)
                                {
                                    cout << " callback"<< endl;
                                
                                    static int pos = 0;
                                
                                       pos += way;
                                       qDebug() << "pos=" << pos ;
                                }
                                
                                void initDecoder()
                                 {
                                     cout << "pigpio test"<< endl;
                                
                                     if (gpioInitialise() < 0) return 1;
                                
                                     re_decoder dec(8, 11, callback);
                                
                                 }
                                
                                 void stopDecoder()
                                 {
                                     dec.re_cancel();
                                     gpioTerminate();
                                 }
                                

                                and I am getting error :
                                'initEncoder' was not declared in this scope
                                initEncoder();
                                ^
                                'a' was not declared in this scope
                                int result = a.exec(); // exec() blocks until you close the app
                                ^
                                'stopEncoder' was not declared in this scope
                                stopEncoder();
                                ^

                                J 1 Reply Last reply 9 Jan 2018, 06:29
                                0
                                • A Ashish Tupate
                                  9 Jan 2018, 06:25

                                  @jsulm my main.cpp file look like this

                                  #include "encodercount.h"
                                  
                                  using namespace std;
                                  
                                  int main(int argc, char *argv[])
                                  {
                                      initEncoder();
                                  
                                      QApplication app(argc, argv);
                                      Dialog w;
                                      w.show();
                                  
                                      int result = a.exec(); // exec() blocks until you close the app
                                      stopEncoder();
                                  
                                      return app.exec();
                                  }
                                  

                                  and encodercount.h

                                  #ifndef ENCODERCOUNT_H
                                  #define ENCODERCOUNT_H
                                  
                                  #include <rotary_encoder.hpp>
                                  
                                  
                                  namespace Encoder {
                                  class EncoderCount;
                                  }
                                  
                                  class EncoderCount
                                  {
                                  public:
                                      explicit EncoderCount();
                                      ~EncoderCount();
                                  
                                      void initDecoder();
                                      void stopDecoder();
                                  
                                  };
                                  
                                  
                                  #endif // ENCODERCOUNT_H
                                  
                                  

                                  encodercount.cpp

                                  void callback(int way)
                                  {
                                      cout << " callback"<< endl;
                                  
                                      static int pos = 0;
                                  
                                         pos += way;
                                         qDebug() << "pos=" << pos ;
                                  }
                                  
                                  void initDecoder()
                                   {
                                       cout << "pigpio test"<< endl;
                                  
                                       if (gpioInitialise() < 0) return 1;
                                  
                                       re_decoder dec(8, 11, callback);
                                  
                                   }
                                  
                                   void stopDecoder()
                                   {
                                       dec.re_cancel();
                                       gpioTerminate();
                                   }
                                  

                                  and I am getting error :
                                  'initEncoder' was not declared in this scope
                                  initEncoder();
                                  ^
                                  'a' was not declared in this scope
                                  int result = a.exec(); // exec() blocks until you close the app
                                  ^
                                  'stopEncoder' was not declared in this scope
                                  stopEncoder();
                                  ^

                                  J Offline
                                  J Offline
                                  jsulm
                                  Lifetime Qt Champion
                                  wrote on 9 Jan 2018, 06:29 last edited by
                                  #19

                                  @Ashish-Tupate Add initEncoder(); and stopEncoder(); to encodercount.h.

                                  Change

                                  int result = a.exec();
                                  

                                  to

                                  int result = app.exec();
                                  

                                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  A 1 Reply Last reply 9 Jan 2018, 06:41
                                  0
                                  • J jsulm
                                    9 Jan 2018, 06:29

                                    @Ashish-Tupate Add initEncoder(); and stopEncoder(); to encodercount.h.

                                    Change

                                    int result = a.exec();
                                    

                                    to

                                    int result = app.exec();
                                    
                                    A Offline
                                    A Offline
                                    Ashish Tupate
                                    wrote on 9 Jan 2018, 06:41 last edited by
                                    #20

                                    @jsulm I dont know why but this error again even if these functions are inside encodercount.h:

                                    'initEncoder' was not declared in this scope
                                    initEncoder();
                                    ^
                                    'stopEncoder' was not declared in this scope
                                    stopEncoder();
                                    ^

                                    #ifndef ENCODERCOUNT_H
                                    #define ENCODERCOUNT_H
                                    #include <rotary_encoder.hpp>
                                    
                                    
                                    namespace Encoder {
                                    class EncoderCount;
                                    }
                                    
                                    class EncoderCount
                                    {
                                    public:
                                        explicit EncoderCount();
                                        ~EncoderCount();
                                    
                                        void initEncoder();
                                        void stopEncoder();
                                    
                                    };
                                    
                                    
                                    #endif // ENCODERCOUNT_H
                                    
                                    
                                    J 1 Reply Last reply 9 Jan 2018, 06:44
                                    0
                                    • A Ashish Tupate
                                      9 Jan 2018, 06:41

                                      @jsulm I dont know why but this error again even if these functions are inside encodercount.h:

                                      'initEncoder' was not declared in this scope
                                      initEncoder();
                                      ^
                                      'stopEncoder' was not declared in this scope
                                      stopEncoder();
                                      ^

                                      #ifndef ENCODERCOUNT_H
                                      #define ENCODERCOUNT_H
                                      #include <rotary_encoder.hpp>
                                      
                                      
                                      namespace Encoder {
                                      class EncoderCount;
                                      }
                                      
                                      class EncoderCount
                                      {
                                      public:
                                          explicit EncoderCount();
                                          ~EncoderCount();
                                      
                                          void initEncoder();
                                          void stopEncoder();
                                      
                                      };
                                      
                                      
                                      #endif // ENCODERCOUNT_H
                                      
                                      
                                      J Offline
                                      J Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on 9 Jan 2018, 06:44 last edited by
                                      #21

                                      @Ashish-Tupate Please think about what you are doing: you put both functions inside EncoderCount class! And then you try to call them as if they would be simple functions.
                                      You should learn C++.
                                      It should be like this:

                                      #ifndef ENCODERCOUNT_H
                                      #define ENCODERCOUNT_H
                                      #include <rotary_encoder.hpp>
                                      
                                      void initEncoder();
                                      void stopEncoder();
                                      

                                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      A 1 Reply Last reply 9 Jan 2018, 06:55
                                      2
                                      • J jsulm
                                        9 Jan 2018, 06:44

                                        @Ashish-Tupate Please think about what you are doing: you put both functions inside EncoderCount class! And then you try to call them as if they would be simple functions.
                                        You should learn C++.
                                        It should be like this:

                                        #ifndef ENCODERCOUNT_H
                                        #define ENCODERCOUNT_H
                                        #include <rotary_encoder.hpp>
                                        
                                        void initEncoder();
                                        void stopEncoder();
                                        
                                        A Offline
                                        A Offline
                                        Ashish Tupate
                                        wrote on 9 Jan 2018, 06:55 last edited by
                                        #22

                                        @jsulm Yes you are right but you have to help me out.Again I got the error :
                                        return-statement with a value, in function returning 'void' [-fpermissive]
                                        if (gpioInitialise() < 0) return 1;
                                        ^

                                        J 1 Reply Last reply 9 Jan 2018, 07:05
                                        0
                                        • A Ashish Tupate
                                          9 Jan 2018, 06:55

                                          @jsulm Yes you are right but you have to help me out.Again I got the error :
                                          return-statement with a value, in function returning 'void' [-fpermissive]
                                          if (gpioInitialise() < 0) return 1;
                                          ^

                                          J Offline
                                          J Offline
                                          jsulm
                                          Lifetime Qt Champion
                                          wrote on 9 Jan 2018, 07:05 last edited by
                                          #23

                                          @Ashish-Tupate "but you have to help me out" - no I don't have to.
                                          You should really learn C++ and read the error messages carefully. What you are asking is completely unrelated to Qt.
                                          Change

                                          if (gpioInitialise() < 0) return 1;
                                          

                                          to

                                          if (gpioInitialise() < 0) return;
                                          

                                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          A 1 Reply Last reply 9 Jan 2018, 07:06
                                          2

                                          13/24

                                          9 Jan 2018, 05:30

                                          • Login

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