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 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