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 pass the parameters between the SIGNAL and SLOTS
Forum Updated to NodeBB v4.3 + New Features

How to pass the parameters between the SIGNAL and SLOTS

Scheduled Pinned Locked Moved Solved General and Desktop
45 Posts 3 Posters 14.7k 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 Offline
    A Offline
    Alex42
    wrote on last edited by
    #1

    Hello every one , I have two interface 2 (.cpp,.h,.ui) that have every one the QLineEdite that change every 100 s and I want to transmmet the values bettween this two interface
    For this I created the signale in the firste interface and the slot in the secande interface,
    Now I can to transmet the values of QLCD Numer from the firste interface to the second interface , but I can't to transmete the values of a QLineEdite from the firste interface to the second interface
    My question it’s how to transmete values of QLineEdite in real Time between two interface
    Thank you in advance

    code first interface
    .H

    public slots:
    void encore_2(QString);
    signals:
        void newtextChanged_1(QString t);
    

    .cpp

    void Mesure::encore_2(QString)
    {
    
    mence->setText(ui->Anale_1->text());
    }
    void Mesure :: calculate_3 ()
    {
    
        S++;
    
        if (S>0)
        {
    emit newtextChanged_1(QString::number (ui->lcdNumber_1->value()));
         //emit newtextChanged_1(QString::number (S));
    
          //  emit newtextChanged_1(mence->text());
    
            
        }
    

    .Seconde interface
    .h

    void encore_2(QString t);
    Mesure get;
    

    .cpp

    connect(&get,SIGNAL(newtextChanged_1(QString)),this,SLOT(encore_2(QString)));
    
    void Mesureone::encore_2(QString t)
    {
    
      mence_one->setText(t);
    
    }
    
    1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi
      Do you have Q_OBJECT in both classes ?

      Check if the connect returns true

      qDebug() << "mysignal:" << connect(&get,SIGNAL(newtextChanged_1(QString)),this,SLOT(encore_2(QString)));

      1 Reply Last reply
      0
      • A Offline
        A Offline
        Alex42
        wrote on last edited by
        #3

        @mrjj thank you for your response, ,, yes i have the Q_object in the bothe classes
        But When i try to test this code i have an error " no matching member function for call to "connect "

        mrjjM 1 Reply Last reply
        0
        • A Alex42

          @mrjj thank you for your response, ,, yes i have the Q_object in the bothe classes
          But When i try to test this code i have an error " no matching member function for call to "connect "

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by mrjj
          #4

          @Alex42
          Hi
          But is the
          connect function not inside a class function?

          If not call it like

          QObject::connect( ....

          and you cannot use "this" but must use a pointer to the instance.

          connect(&get,SIGNAL(newtextChanged_1(QString)),this,SLOT(encore_2(QString)));

          If its not inside class, there is no this.

          So please show the code around the connect.

          1 Reply Last reply
          0
          • A Offline
            A Offline
            Alex42
            wrote on last edited by
            #5

            @Alex42 said in How to pass the parameters between the SIGNAL and SLOTS:

            no matching member function for call to "connect "
            ok , ok , I Made a Mistake
            ignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true

            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true
            mysignal: true

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Alex42
              wrote on last edited by
              #6

              so i think the probleme is not around the connecte , becouse WITHE THE qlcdNumber work will , but withe the QLineEdit It does not work

              1 Reply Last reply
              0
              • A Offline
                A Offline
                Alex42
                wrote on last edited by
                #7

                for more information , i created the principle interface (MainWindow), and in this interface i have two QPushbutton ,the first button open the firste interface (Mesure) , and the second Button open the seconde interface

                • i don't get any messages about the connect failing
                  -( i can to change the data between the firste interface (Mesure) and the seconde interface (Mesureone ), but with the QLineEdit i can't to transmite data between this interfaces
                • i used the debugger , and the slot is called and the connect executed . But i can't to interact between this interfaces with the QLineEdit (incredible)
                mrjjM 1 Reply Last reply
                0
                • A Alex42

                  for more information , i created the principle interface (MainWindow), and in this interface i have two QPushbutton ,the first button open the firste interface (Mesure) , and the second Button open the seconde interface

                  • i don't get any messages about the connect failing
                    -( i can to change the data between the firste interface (Mesure) and the seconde interface (Mesureone ), but with the QLineEdit i can't to transmite data between this interfaces
                  • i used the debugger , and the slot is called and the connect executed . But i can't to interact between this interfaces with the QLineEdit (incredible)
                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @Alex42

                  Hi
                  Your connect seems to be called many times.
                  Normally you should only call it once as it will send multiple times if you connect multiple times and
                  that is normally not what you want.

                  Anyway,

                  Are you saying that

                  void Mesure :: calculate_3 ()
                  {
                  
                      S++;
                  
                      if (S>0)
                      {
                      emit newtextChanged_1(QString::number (ui->lcdNumber_1->value()));  /// works
                      but  
                      emit newtextChanged_1(mence->text()); // wont work ?
                  
                  
                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    Alex42
                    wrote on last edited by
                    #9

                    @mrjj said in How to pass the parameters between the SIGNAL and SLOTS:

                    Your connect seems to be called many times.

                    there is no probleme if you call it many time or you call it once , i tried many situation ( call it once , and call it many time ) but that not work

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      Alex42
                      wrote on last edited by
                      #10

                      @mrjj said in How to pass the parameters between the SIGNAL and SLOTS:

                      emit newtextChanged_1(mence->text()); // wont work ?

                      emit newtextChanged_1(mence->text()); // wont work ? exactly what i whant to do buthe d'ont work

                      mrjjM 1 Reply Last reply
                      0
                      • A Alex42

                        @mrjj said in How to pass the parameters between the SIGNAL and SLOTS:

                        emit newtextChanged_1(mence->text()); // wont work ?

                        emit newtextChanged_1(mence->text()); // wont work ? exactly what i whant to do buthe d'ont work

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #11

                        @Alex42

                        Hi
                        does
                        QString test("hello");
                        emit newtextChanged_1(test);

                        works ?

                        Both should work if the
                        QString::number (ui->lcdNumber_1->value()) works.

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          Alex42
                          wrote on last edited by
                          #12

                          @mrjj , QString test("hello");
                          emit newtextChanged_1(test);

                          works ?

                          yes it works very well

                          mrjjM 1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            Alex42
                            wrote on last edited by
                            #13

                            are you undestad that may QLineEdite change every 1000ms ?

                            1 Reply Last reply
                            1
                            • A Alex42

                              @mrjj , QString test("hello");
                              emit newtextChanged_1(test);

                              works ?

                              yes it works very well

                              mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by mrjj
                              #14

                              @Alex42

                              Ok that is a bit o.O

                              so try

                              QString text = mence->text();
                              qDebug() << "sending:" << text;
                              emit ewtextChanged_1(text);

                              and see if the mence is the one you think it is as that is my only guess then as
                              the signal clearly works :)

                              Yes, I understand you change the text of the lineEdit every sec,but that should not matter
                              as we just get what ever was set last when we ask.

                              1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                Alex42
                                wrote on last edited by
                                #15

                                yes exactly what i want , befor i tried this and works very well ,
                                but the probleme is in the second interface i can't receve this data ![alt text](d1227136-64f2-4151-9673-f2de8d04d62e-Capture.PNG image url)
                                ( in the seconde interface i receve only 0( the fiste values) , i can't receive the values when is chenged

                                mrjjM 1 Reply Last reply
                                0
                                • A Alex42

                                  yes exactly what i want , befor i tried this and works very well ,
                                  but the probleme is in the second interface i can't receve this data ![alt text](d1227136-64f2-4151-9673-f2de8d04d62e-Capture.PNG image url)
                                  ( in the seconde interface i receve only 0( the fiste values) , i can't receive the values when is chenged

                                  mrjjM Offline
                                  mrjjM Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #16

                                  @Alex42

                                  So in interface 2, you only see the "0" and never "12222" etc ?

                                  But you could send "hello" and other string ?
                                  That I cant explain. seems impossible.

                                  Just so I understand.

                                  You have a main window and 2 buttons. Each button opens a new Form/window and
                                  form1 has a timer or something that makes a lineEdit count/set some value.
                                  This value you try to emit to form2 when calculate_3 is called ?

                                  1 Reply Last reply
                                  0
                                  • A Offline
                                    A Offline
                                    Alex42
                                    wrote on last edited by
                                    #17

                                    @mrjj said in How to pass the parameters between the SIGNAL and SLOTS:

                                    So in interface 2, you only see the "0" and never "12222" etc ?

                                    So in interface 2, you only see the "0" and never "12222" etc ? yes exactly
                                    But you could send "hello" and other string ? yes i can send hello
                                    You have a main window and 2 buttons. Each button opens a new Form/window and
                                    form1 has a timer or something that makes a lineEdit count/set some value.
                                    This value you try to emit to form2 when calculate_3 is called ? exactly what i want to do

                                    mrjjM 1 Reply Last reply
                                    0
                                    • A Alex42

                                      @mrjj said in How to pass the parameters between the SIGNAL and SLOTS:

                                      So in interface 2, you only see the "0" and never "12222" etc ?

                                      So in interface 2, you only see the "0" and never "12222" etc ? yes exactly
                                      But you could send "hello" and other string ? yes i can send hello
                                      You have a main window and 2 buttons. Each button opens a new Form/window and
                                      form1 has a timer or something that makes a lineEdit count/set some value.
                                      This value you try to emit to form2 when calculate_3 is called ? exactly what i want to do

                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #18

                                      @Alex42
                                      Ok. how is the LineEdit updated ?
                                      a Qtimer ?

                                      1 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        Alex42
                                        wrote on last edited by
                                        #19

                                        yes a Qtimer

                                        mrjjM 1 Reply Last reply
                                        0
                                        • A Alex42

                                          yes a Qtimer

                                          mrjjM Offline
                                          mrjjM Offline
                                          mrjj
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #20

                                          @Alex42

                                          Ok. hang on for 20 mins. Ill try myself as it does seem strange :)

                                          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