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. Widget Server Client problem
Forum Updated to NodeBB v4.3 + New Features

Widget Server Client problem

Scheduled Pinned Locked Moved Unsolved General and Desktop
12 Posts 2 Posters 1.4k 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by SGaist
    #2

    Hi,

    What does MainWindow.h look like ?

    The Q_OBJECT macro should be in the private part of your class.

    Out of curiosity, why does your QTcpServer have to know about your MainWindow ? That smells like tight coupling which is a bad idea.

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    L 1 Reply Last reply
    2
    • SGaistS SGaist

      Hi,

      What does MainWindow.h look like ?

      The Q_OBJECT macro should be in the private part of your class.

      Out of curiosity, why does your QTcpServer have to know about your MainWindow ? That smells like tight coupling which is a bad idea.

      L Offline
      L Offline
      lolilol78
      wrote on last edited by
      #3

      @SGaist Thank you for your answer, I actually took a part of code from the internet.

      Here is the the mainwindow.h :

      #ifndef MAINWINDOW_H
      #define MAINWINDOW_H
      
      #include <QMainWindow>
      
      #include "HelloWorldServer.h"
      
      namespace Ui {
      class MainWindow;
      }
      class HelloWorldServer;
      
      class MainWindow : public QMainWindow
      {
          Q_OBJECT
      
      public:
          explicit MainWindow(QWidget *parent = 0);
          ~MainWindow();
          void addMessage(QString Msg);
          HelloWorldServer* m_pBoxServer;
      
      private slots:
          void on_pushButtonStart_clicked();
      
      private:
          Ui::MainWindow *ui;
      };
      
      #endif // MAINWINDOW_H
      
      

      I tried putting the Q_OBJECT into the private one and it gave me same errors with this one more : QTcpServer was not declared in this scope.

      L 1 Reply Last reply
      0
      • L lolilol78

        @SGaist Thank you for your answer, I actually took a part of code from the internet.

        Here is the the mainwindow.h :

        #ifndef MAINWINDOW_H
        #define MAINWINDOW_H
        
        #include <QMainWindow>
        
        #include "HelloWorldServer.h"
        
        namespace Ui {
        class MainWindow;
        }
        class HelloWorldServer;
        
        class MainWindow : public QMainWindow
        {
            Q_OBJECT
        
        public:
            explicit MainWindow(QWidget *parent = 0);
            ~MainWindow();
            void addMessage(QString Msg);
            HelloWorldServer* m_pBoxServer;
        
        private slots:
            void on_pushButtonStart_clicked();
        
        private:
            Ui::MainWindow *ui;
        };
        
        #endif // MAINWINDOW_H
        
        

        I tried putting the Q_OBJECT into the private one and it gave me same errors with this one more : QTcpServer was not declared in this scope.

        L Offline
        L Offline
        lolilol78
        wrote on last edited by
        #4

        @lolilol78 Basically the widget for the client works fine (entering the ip adresse, the port, and connect push button.)

        but the server is stuck

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #5

          Did you add QT += network to your .pro file ?

          Your HelloWorldServer shouldn't know anything about MainWindow. You should have slots there that you will connect to the MainWindow appropriate signals.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          L 1 Reply Last reply
          1
          • SGaistS SGaist

            Did you add QT += network to your .pro file ?

            Your HelloWorldServer shouldn't know anything about MainWindow. You should have slots there that you will connect to the MainWindow appropriate signals.

            L Offline
            L Offline
            lolilol78
            wrote on last edited by
            #6

            @SGaist I added it yes .

            What do you mean by shouldnt know anything about?

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #7

              Then can you show the complete error log ?

              When you have XXX was not declared in this scope, it usually means that you didn't include the header which provides that class.

              I mean that your HelloWorldServer shouldn't need to know where from its data are coming. Just give it an interface that allows to set whatever parameter it needs.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              L 2 Replies Last reply
              1
              • SGaistS SGaist

                Then can you show the complete error log ?

                When you have XXX was not declared in this scope, it usually means that you didn't include the header which provides that class.

                I mean that your HelloWorldServer shouldn't need to know where from its data are coming. Just give it an interface that allows to set whatever parameter it needs.

                L Offline
                L Offline
                lolilol78
                wrote on last edited by
                #8

                @SGaist ok i see. here is the full error log :

                0_1533849878699_10b4c912-3f25-4df3-85b5-d89e75891d80-image.png

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #9

                  You have circular dependencies.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  L 1 Reply Last reply
                  1
                  • SGaistS SGaist

                    You have circular dependencies.

                    L Offline
                    L Offline
                    lolilol78
                    wrote on last edited by
                    #10

                    @SGaist dont know about that, i will check the internet and come back to you. thank you for your help SGaist

                    1 Reply Last reply
                    0
                    • SGaistS SGaist

                      Then can you show the complete error log ?

                      When you have XXX was not declared in this scope, it usually means that you didn't include the header which provides that class.

                      I mean that your HelloWorldServer shouldn't need to know where from its data are coming. Just give it an interface that allows to set whatever parameter it needs.

                      L Offline
                      L Offline
                      lolilol78
                      wrote on last edited by
                      #11

                      @SGaist so it means that i have functions related to other .cpp inside my whole program?

                      (sorry it is all new to me)

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        No, it means you are including MainWindow.h in HelloWorldServer.h and then HelloWorldServer.h in MainWindow.h

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        2

                        • Login

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