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 automatically update GUI status
Forum Updated to NodeBB v4.3 + New Features

how to automatically update GUI status

Scheduled Pinned Locked Moved Solved General and Desktop
27 Posts 5 Posters 5.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.
  • MijazM Offline
    MijazM Offline
    Mijaz
    wrote on last edited by Mijaz
    #1

    Problem:
    When I execute the following code without a while(1) loop it works correctly but it needs push Run button for the update.
    When I execute with a while(1) loop it stuck with the current input, not gets ready for the next input. The output of current input displays only in the terminal, not on GUI.

    my target to achieve:
    whenever I will enter input, it should update output without push the run button.
    How I can insert stop pushbutton?

    // program
    void MainWindow::on_Run_button_clicked()
    {
    // while(1)
    // {
    QString str = ui->lineEdit->text();
    qDebug()<<"Input (HEX) = " << str;
    bool ok;
    int iVal = str.toInt(&ok,16);
    QString binnumber = str.setNum(iVal, 2);
    ui->lineEdit_2->setText(binnumber);
    qDebug()<<"output in binary = " << binnumber;
    }
    //}

    Selection_029.png

    jsulmJ 1 Reply Last reply
    0
    • J.HilkJ Offline
      J.HilkJ Offline
      J.Hilk
      Moderators
      wrote on last edited by
      #8

      @Mijaz
      here's one way you can do it, using the signals @jsulm pointed you to

      MainWindow::MainWindow(QWidget *parent) :
          QMainWindow(parent),
          ui(new Ui::MainWindow)
      {
          ui->setupUi(this);
          connect(ui->lineEdit, &QLineEdit::textEdited, this, [=]()->void{
              QString str = ui->lineEdit->text();
              qDebug()<<"Input (HEX) = " << str;
              bool ok;
              int iVal = str.toInt(&ok,16);
              QString binnumber = str.setNum(iVal, 2);
              if(ok)
                  ui->lineEdit_2->setText(binnumber);
              else
                  ui->lineEdit_2->setText("Not a number");
              qDebug()<<"output in binary = " << binnumber;
          });
      }
      

      replace textEdited with editingFinished if you want to run this lambda(function) only when the user presses enter/return or the line edit looses focus


      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


      Q: What's that?
      A: It's blue light.
      Q: What does it do?
      A: It turns blue.

      MijazM 2 Replies Last reply
      3
      • MijazM Mijaz

        Problem:
        When I execute the following code without a while(1) loop it works correctly but it needs push Run button for the update.
        When I execute with a while(1) loop it stuck with the current input, not gets ready for the next input. The output of current input displays only in the terminal, not on GUI.

        my target to achieve:
        whenever I will enter input, it should update output without push the run button.
        How I can insert stop pushbutton?

        // program
        void MainWindow::on_Run_button_clicked()
        {
        // while(1)
        // {
        QString str = ui->lineEdit->text();
        qDebug()<<"Input (HEX) = " << str;
        bool ok;
        int iVal = str.toInt(&ok,16);
        QString binnumber = str.setNum(iVal, 2);
        ui->lineEdit_2->setText(binnumber);
        qDebug()<<"output in binary = " << binnumber;
        }
        //}

        Selection_029.png

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by jsulm
        #2

        @Mijaz

        while(1)
        

        is an endless loop! Why do you need an endless loop? How often do you actually need to iterate?
        "whenever I will enter input" see:

        • https://doc.qt.io/qt-5/qlineedit.html#editingFinished
        • https://doc.qt.io/qt-5/qlineedit.html#textEdited

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

        MijazM 1 Reply Last reply
        3
        • jsulmJ jsulm

          @Mijaz

          while(1)
          

          is an endless loop! Why do you need an endless loop? How often do you actually need to iterate?
          "whenever I will enter input" see:

          • https://doc.qt.io/qt-5/qlineedit.html#editingFinished
          • https://doc.qt.io/qt-5/qlineedit.html#textEdited
          MijazM Offline
          MijazM Offline
          Mijaz
          wrote on last edited by
          #3

          @jsulm
          Yes, I need an endless loop.
          Because I have to introduce this characteristic into a reactive jammer GUI.

          jsulmJ 2 Replies Last reply
          0
          • MijazM Mijaz

            @jsulm
            Yes, I need an endless loop.
            Because I have to introduce this characteristic into a reactive jammer GUI.

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #4

            @Mijaz
            https://doc.qt.io/qt-5/qlineedit.html#editingFinished
            https://doc.qt.io/qt-5/qlineedit.html#textEdited

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

            MijazM 1 Reply Last reply
            1
            • MijazM Mijaz

              @jsulm
              Yes, I need an endless loop.
              Because I have to introduce this characteristic into a reactive jammer GUI.

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #5

              @Mijaz said in how to automatically update GUI status:

              Yes, I need an endless loop.

              No, you don't. See my other post.

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

              1 Reply Last reply
              1
              • jsulmJ jsulm

                @Mijaz
                https://doc.qt.io/qt-5/qlineedit.html#editingFinished
                https://doc.qt.io/qt-5/qlineedit.html#textEdited

                MijazM Offline
                MijazM Offline
                Mijaz
                wrote on last edited by
                #6

                @jsulm
                Ones it entered to while(1) loop it does not take any input. How I can make it ready for the next input?

                jsulmJ 1 Reply Last reply
                0
                • MijazM Mijaz

                  @jsulm
                  Ones it entered to while(1) loop it does not take any input. How I can make it ready for the next input?

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by jsulm
                  #7

                  @Mijaz Did you read my previous post?
                  I gave you two signals. You can use editingFinished signal and connect a slot to it where you execute the code you posted but without loop.

                  Do you actually know that an endless loop will never end? You're basically blocking your application forever with such a loop and it is simply not needed at all...

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

                  1 Reply Last reply
                  2
                  • J.HilkJ Offline
                    J.HilkJ Offline
                    J.Hilk
                    Moderators
                    wrote on last edited by
                    #8

                    @Mijaz
                    here's one way you can do it, using the signals @jsulm pointed you to

                    MainWindow::MainWindow(QWidget *parent) :
                        QMainWindow(parent),
                        ui(new Ui::MainWindow)
                    {
                        ui->setupUi(this);
                        connect(ui->lineEdit, &QLineEdit::textEdited, this, [=]()->void{
                            QString str = ui->lineEdit->text();
                            qDebug()<<"Input (HEX) = " << str;
                            bool ok;
                            int iVal = str.toInt(&ok,16);
                            QString binnumber = str.setNum(iVal, 2);
                            if(ok)
                                ui->lineEdit_2->setText(binnumber);
                            else
                                ui->lineEdit_2->setText("Not a number");
                            qDebug()<<"output in binary = " << binnumber;
                        });
                    }
                    

                    replace textEdited with editingFinished if you want to run this lambda(function) only when the user presses enter/return or the line edit looses focus


                    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                    Q: What's that?
                    A: It's blue light.
                    Q: What does it do?
                    A: It turns blue.

                    MijazM 2 Replies Last reply
                    3
                    • J.HilkJ J.Hilk

                      @Mijaz
                      here's one way you can do it, using the signals @jsulm pointed you to

                      MainWindow::MainWindow(QWidget *parent) :
                          QMainWindow(parent),
                          ui(new Ui::MainWindow)
                      {
                          ui->setupUi(this);
                          connect(ui->lineEdit, &QLineEdit::textEdited, this, [=]()->void{
                              QString str = ui->lineEdit->text();
                              qDebug()<<"Input (HEX) = " << str;
                              bool ok;
                              int iVal = str.toInt(&ok,16);
                              QString binnumber = str.setNum(iVal, 2);
                              if(ok)
                                  ui->lineEdit_2->setText(binnumber);
                              else
                                  ui->lineEdit_2->setText("Not a number");
                              qDebug()<<"output in binary = " << binnumber;
                          });
                      }
                      

                      replace textEdited with editingFinished if you want to run this lambda(function) only when the user presses enter/return or the line edit looses focus

                      MijazM Offline
                      MijazM Offline
                      Mijaz
                      wrote on last edited by
                      #9

                      @J-Hilk
                      Thank you very much. It works great.
                      But Run and Stop button not functioned. How we can make this function dependent on the Run and Stop. When I push Run it automatically starts to convert the input to output and when press Stop it should not accept any input further.

                      1 Reply Last reply
                      0
                      • J.HilkJ J.Hilk

                        @Mijaz
                        here's one way you can do it, using the signals @jsulm pointed you to

                        MainWindow::MainWindow(QWidget *parent) :
                            QMainWindow(parent),
                            ui(new Ui::MainWindow)
                        {
                            ui->setupUi(this);
                            connect(ui->lineEdit, &QLineEdit::textEdited, this, [=]()->void{
                                QString str = ui->lineEdit->text();
                                qDebug()<<"Input (HEX) = " << str;
                                bool ok;
                                int iVal = str.toInt(&ok,16);
                                QString binnumber = str.setNum(iVal, 2);
                                if(ok)
                                    ui->lineEdit_2->setText(binnumber);
                                else
                                    ui->lineEdit_2->setText("Not a number");
                                qDebug()<<"output in binary = " << binnumber;
                            });
                        }
                        

                        replace textEdited with editingFinished if you want to run this lambda(function) only when the user presses enter/return or the line edit looses focus

                        MijazM Offline
                        MijazM Offline
                        Mijaz
                        wrote on last edited by
                        #10

                        @J-Hilk
                        This program correctly on Desktop. When I try to deply to my SDR Board then following error occures:
                        1).
                        /usr/local/Qt-4.8.7-arm/include/QtGui/qlineedit.h:196: error: ‘void QLineEdit::textEdited(const QString&)’ is protected
                        void textEdited(const QString &);
                        ^

                        2).
                        /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:11: error: within this context
                        connect(ui->lineEdit, &QLineEdit::textEdited, this, =->void
                        ^

                        3).
                        /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:23: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
                        });
                        ^
                        4).
                        /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:23: error: no matching function for call to ‘MainWindow::connect(QLineEdit*&, void (QLineEdit::)(const QString&), MainWindow const, MainWindow::MainWindow(QWidget*)::__lambda0)’
                        });
                        ^

                        jsulmJ J.HilkJ 2 Replies Last reply
                        0
                        • MijazM Mijaz

                          @J-Hilk
                          This program correctly on Desktop. When I try to deply to my SDR Board then following error occures:
                          1).
                          /usr/local/Qt-4.8.7-arm/include/QtGui/qlineedit.h:196: error: ‘void QLineEdit::textEdited(const QString&)’ is protected
                          void textEdited(const QString &);
                          ^

                          2).
                          /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:11: error: within this context
                          connect(ui->lineEdit, &QLineEdit::textEdited, this, =->void
                          ^

                          3).
                          /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:23: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
                          });
                          ^
                          4).
                          /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:23: error: no matching function for call to ‘MainWindow::connect(QLineEdit*&, void (QLineEdit::)(const QString&), MainWindow const, MainWindow::MainWindow(QWidget*)::__lambda0)’
                          });
                          ^

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by jsulm
                          #11

                          @Mijaz said in how to automatically update GUI status:

                          Qt-4.8.7-arm

                          Is there a reason why you use Qt4?
                          Also your compiler for the device does not support C++11.

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

                          MijazM 1 Reply Last reply
                          0
                          • MijazM Mijaz

                            @J-Hilk
                            This program correctly on Desktop. When I try to deply to my SDR Board then following error occures:
                            1).
                            /usr/local/Qt-4.8.7-arm/include/QtGui/qlineedit.h:196: error: ‘void QLineEdit::textEdited(const QString&)’ is protected
                            void textEdited(const QString &);
                            ^

                            2).
                            /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:11: error: within this context
                            connect(ui->lineEdit, &QLineEdit::textEdited, this, =->void
                            ^

                            3).
                            /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:23: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
                            });
                            ^
                            4).
                            /home/ijaz/Qt_applications/update_automatically/mainwindow.cpp:23: error: no matching function for call to ‘MainWindow::connect(QLineEdit*&, void (QLineEdit::)(const QString&), MainWindow const, MainWindow::MainWindow(QWidget*)::__lambda0)’
                            });
                            ^

                            J.HilkJ Offline
                            J.HilkJ Offline
                            J.Hilk
                            Moderators
                            wrote on last edited by
                            #12

                            @Mijaz
                            my example uses a lambda in the connect, that is only possible in Qt5 and newer. Not in QT 4

                            But you should be able to move it in its own class function and connect it the old fashioned way


                            Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                            Q: What's that?
                            A: It's blue light.
                            Q: What does it do?
                            A: It turns blue.

                            MijazM 1 Reply Last reply
                            0
                            • J.HilkJ J.Hilk

                              @Mijaz
                              my example uses a lambda in the connect, that is only possible in Qt5 and newer. Not in QT 4

                              But you should be able to move it in its own class function and connect it the old fashioned way

                              MijazM Offline
                              MijazM Offline
                              Mijaz
                              wrote on last edited by
                              #13

                              @J-Hilk
                              I have changed this code to the old version and it works fine. There are two cases I want to execute, cases are follows.

                              case 1: Working correctly.

                              MainWindow::MainWindow(QWidget *parent) :
                              QMainWindow(parent),
                              ui(new Ui::MainWindow)
                              {
                              ui->setupUi(this);
                              connect(ui->lineEdit_input, SIGNAL(textEdited(QString)), this, SLOT(myFunction()));

                              }

                              void MainWindow::myFunction()
                              {
                              QString str = ui->lineEdit_input->text();
                              qDebug()<<"Input (HEX) = " << str;
                              ui->lineEdit_1->setText(str);
                              bool ok1;
                              qint64 iVal = str.toLongLong(&ok1,16);
                              ui->lineEdit_2->setText(QString::number(iVal));
                              QString binnumber = str.setNum(iVal, 2);
                              ui->lineEdit_3->setText(binnumber);
                              qDebug()<<"Convert to Int = " << QString::number(iVal);
                              qDebug()<<"Convert to Binary = " << binnumber;
                              qDebug()<<"size of string binnumber = " << binnumber.size();
                              }
                              Selection_032.png

                              case 2: Not working correctly,

                              MainWindow::MainWindow(QWidget *parent) :
                              QMainWindow(parent),
                              ui(new Ui::MainWindow)
                              {
                              ui->setupUi(this);
                              connect(ui->lineEdit_input, SIGNAL(textEdited(QString)), this, SLOT(myFunction()));
                              QProcess process;
                              process.start("sudo devmem2 0x41210000");
                              process.waitForFinished(-1); // will wait forever until finished
                              QString stdout = process.readAllStandardOutput();
                              qDebug()<<"Input (HEX) = " << stdout;
                              QChar data[8] = { stdout[98], stdout[99], stdout[100], stdout[101], stdout[102], stdout[103], stdout[104],stdout[105]};
                              QString str1(data, 8);
                              qDebug()<<"Input (HEX) = " << str1;

                              }

                              void MainWindow::myFunction()
                              {
                              QString str = ui->lineEdit_input->setText(str1);
                              qDebug()<<"Input (HEX) = " << str;
                              ui->lineEdit_1->setText(str);
                              bool ok1;
                              qint64 iVal = str.toLongLong(&ok1,16);
                              ui->lineEdit_2->setText(QString::number(iVal));
                              QString binnumber = str.setNum(iVal, 2);
                              ui->lineEdit_3->setText(binnumber);
                              qDebug()<<"Convert to Int = " << QString::number(iVal);
                              qDebug()<<"Convert to Binary = " << binnumber;
                              qDebug()<<"size of string binnumber = " << binnumber.size();
                              }

                              Selection_033.png

                              "QString str1" is unkown "void MainWindow::myFunction()"

                              jsulmJ J.HilkJ 2 Replies Last reply
                              0
                              • MijazM Mijaz

                                @J-Hilk
                                I have changed this code to the old version and it works fine. There are two cases I want to execute, cases are follows.

                                case 1: Working correctly.

                                MainWindow::MainWindow(QWidget *parent) :
                                QMainWindow(parent),
                                ui(new Ui::MainWindow)
                                {
                                ui->setupUi(this);
                                connect(ui->lineEdit_input, SIGNAL(textEdited(QString)), this, SLOT(myFunction()));

                                }

                                void MainWindow::myFunction()
                                {
                                QString str = ui->lineEdit_input->text();
                                qDebug()<<"Input (HEX) = " << str;
                                ui->lineEdit_1->setText(str);
                                bool ok1;
                                qint64 iVal = str.toLongLong(&ok1,16);
                                ui->lineEdit_2->setText(QString::number(iVal));
                                QString binnumber = str.setNum(iVal, 2);
                                ui->lineEdit_3->setText(binnumber);
                                qDebug()<<"Convert to Int = " << QString::number(iVal);
                                qDebug()<<"Convert to Binary = " << binnumber;
                                qDebug()<<"size of string binnumber = " << binnumber.size();
                                }
                                Selection_032.png

                                case 2: Not working correctly,

                                MainWindow::MainWindow(QWidget *parent) :
                                QMainWindow(parent),
                                ui(new Ui::MainWindow)
                                {
                                ui->setupUi(this);
                                connect(ui->lineEdit_input, SIGNAL(textEdited(QString)), this, SLOT(myFunction()));
                                QProcess process;
                                process.start("sudo devmem2 0x41210000");
                                process.waitForFinished(-1); // will wait forever until finished
                                QString stdout = process.readAllStandardOutput();
                                qDebug()<<"Input (HEX) = " << stdout;
                                QChar data[8] = { stdout[98], stdout[99], stdout[100], stdout[101], stdout[102], stdout[103], stdout[104],stdout[105]};
                                QString str1(data, 8);
                                qDebug()<<"Input (HEX) = " << str1;

                                }

                                void MainWindow::myFunction()
                                {
                                QString str = ui->lineEdit_input->setText(str1);
                                qDebug()<<"Input (HEX) = " << str;
                                ui->lineEdit_1->setText(str);
                                bool ok1;
                                qint64 iVal = str.toLongLong(&ok1,16);
                                ui->lineEdit_2->setText(QString::number(iVal));
                                QString binnumber = str.setNum(iVal, 2);
                                ui->lineEdit_3->setText(binnumber);
                                qDebug()<<"Convert to Int = " << QString::number(iVal);
                                qDebug()<<"Convert to Binary = " << binnumber;
                                qDebug()<<"size of string binnumber = " << binnumber.size();
                                }

                                Selection_033.png

                                "QString str1" is unkown "void MainWindow::myFunction()"

                                jsulmJ Offline
                                jsulmJ Offline
                                jsulm
                                Lifetime Qt Champion
                                wrote on last edited by
                                #14

                                @Mijaz said in how to automatically update GUI status:

                                str1

                                Where is it defined?
                                The compiler actually tells you that it does not exist at that location...

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

                                MijazM 1 Reply Last reply
                                2
                                • jsulmJ jsulm

                                  @Mijaz said in how to automatically update GUI status:

                                  Qt-4.8.7-arm

                                  Is there a reason why you use Qt4?
                                  Also your compiler for the device does not support C++11.

                                  MijazM Offline
                                  MijazM Offline
                                  Mijaz
                                  wrote on last edited by
                                  #15

                                  @jsulm

                                  I am using Qt4 because the errors occurred while cross-compilation of Qt5 to my Board.

                                  jsulmJ 1 Reply Last reply
                                  0
                                  • MijazM Mijaz

                                    @J-Hilk
                                    I have changed this code to the old version and it works fine. There are two cases I want to execute, cases are follows.

                                    case 1: Working correctly.

                                    MainWindow::MainWindow(QWidget *parent) :
                                    QMainWindow(parent),
                                    ui(new Ui::MainWindow)
                                    {
                                    ui->setupUi(this);
                                    connect(ui->lineEdit_input, SIGNAL(textEdited(QString)), this, SLOT(myFunction()));

                                    }

                                    void MainWindow::myFunction()
                                    {
                                    QString str = ui->lineEdit_input->text();
                                    qDebug()<<"Input (HEX) = " << str;
                                    ui->lineEdit_1->setText(str);
                                    bool ok1;
                                    qint64 iVal = str.toLongLong(&ok1,16);
                                    ui->lineEdit_2->setText(QString::number(iVal));
                                    QString binnumber = str.setNum(iVal, 2);
                                    ui->lineEdit_3->setText(binnumber);
                                    qDebug()<<"Convert to Int = " << QString::number(iVal);
                                    qDebug()<<"Convert to Binary = " << binnumber;
                                    qDebug()<<"size of string binnumber = " << binnumber.size();
                                    }
                                    Selection_032.png

                                    case 2: Not working correctly,

                                    MainWindow::MainWindow(QWidget *parent) :
                                    QMainWindow(parent),
                                    ui(new Ui::MainWindow)
                                    {
                                    ui->setupUi(this);
                                    connect(ui->lineEdit_input, SIGNAL(textEdited(QString)), this, SLOT(myFunction()));
                                    QProcess process;
                                    process.start("sudo devmem2 0x41210000");
                                    process.waitForFinished(-1); // will wait forever until finished
                                    QString stdout = process.readAllStandardOutput();
                                    qDebug()<<"Input (HEX) = " << stdout;
                                    QChar data[8] = { stdout[98], stdout[99], stdout[100], stdout[101], stdout[102], stdout[103], stdout[104],stdout[105]};
                                    QString str1(data, 8);
                                    qDebug()<<"Input (HEX) = " << str1;

                                    }

                                    void MainWindow::myFunction()
                                    {
                                    QString str = ui->lineEdit_input->setText(str1);
                                    qDebug()<<"Input (HEX) = " << str;
                                    ui->lineEdit_1->setText(str);
                                    bool ok1;
                                    qint64 iVal = str.toLongLong(&ok1,16);
                                    ui->lineEdit_2->setText(QString::number(iVal));
                                    QString binnumber = str.setNum(iVal, 2);
                                    ui->lineEdit_3->setText(binnumber);
                                    qDebug()<<"Convert to Int = " << QString::number(iVal);
                                    qDebug()<<"Convert to Binary = " << binnumber;
                                    qDebug()<<"size of string binnumber = " << binnumber.size();
                                    }

                                    Selection_033.png

                                    "QString str1" is unkown "void MainWindow::myFunction()"

                                    J.HilkJ Offline
                                    J.HilkJ Offline
                                    J.Hilk
                                    Moderators
                                    wrote on last edited by
                                    #16

                                    @Mijaz yes of course, str1 is a local variable inside your constructor function. myFunction()` has no knowledge of it.

                                    also, setText is a void function, it has no return value


                                    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                                    Q: What's that?
                                    A: It's blue light.
                                    Q: What does it do?
                                    A: It turns blue.

                                    1 Reply Last reply
                                    2
                                    • MijazM Mijaz

                                      @jsulm

                                      I am using Qt4 because the errors occurred while cross-compilation of Qt5 to my Board.

                                      jsulmJ Offline
                                      jsulmJ Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #17

                                      @Mijaz Keep in mind that Qt4 is reached its end of life already and is not supported anymore.

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

                                      MijazM 1 Reply Last reply
                                      0
                                      • jsulmJ jsulm

                                        @Mijaz said in how to automatically update GUI status:

                                        str1

                                        Where is it defined?
                                        The compiler actually tells you that it does not exist at that location...

                                        MijazM Offline
                                        MijazM Offline
                                        Mijaz
                                        wrote on last edited by
                                        #18

                                        @jsulm
                                        QString str1 is defined in MainWindow::MainWindow(QWidget *parent) :

                                        jsulmJ MijazM 2 Replies Last reply
                                        0
                                        • MijazM Mijaz

                                          @jsulm
                                          QString str1 is defined in MainWindow::MainWindow(QWidget *parent) :

                                          jsulmJ Offline
                                          jsulmJ Offline
                                          jsulm
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #19

                                          @Mijaz said in how to automatically update GUI status:

                                          QString str1 is defined in MainWindow::MainWindow(QWidget *parent) :

                                          as local variable which only exists inside MainWindow::MainWindow(QWidget *parent)...

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

                                          1 Reply Last reply
                                          0
                                          • MijazM Mijaz

                                            @jsulm
                                            QString str1 is defined in MainWindow::MainWindow(QWidget *parent) :

                                            MijazM Offline
                                            MijazM Offline
                                            Mijaz
                                            wrote on last edited by
                                            #20

                                            @Mijaz
                                            now I have defined str1 in mainwindow.h
                                            /////////////
                                            public:
                                            explicit MainWindow(QWidget *parent = 0);
                                            ~MainWindow();
                                            QString str1;

                                            ///////////////////////
                                            MainWindow::MainWindow(QWidget *parent) :
                                            QMainWindow(parent),
                                            ui(new Ui::MainWindow)
                                            {
                                            ui->setupUi(this);
                                            connect(ui->lineEdit_input, SIGNAL(textEdited(QString)), this, SLOT(myFunction()));
                                            QProcess process;
                                            process.start("sudo devmem2 0x41210000");
                                            process.waitForFinished(-1); // will wait forever until finished
                                            QString stdout = process.readAllStandardOutput();
                                            qDebug()<<"Input (HEX) = " << stdout;
                                            QChar data[8] = { stdout[98], stdout[99], stdout[100], stdout[101], stdout[102], stdout[103], stdout[104],stdout[105]};
                                            QString str11(data, 8);
                                            qDebug()<<"local string = " << str11;
                                            bool ok1;
                                            str1= str11.toInt(&ok1,16);
                                            qDebug()<<"Globle string = " << QString::number(str1);

                                            }

                                            void MainWindow::myFunction()
                                            {
                                            //QString str = ui->lineEdit_input->text();
                                            QString str = str1;
                                            qDebug()<<"Input (HEX) = " << str;
                                            ui->lineEdit_1->setText(str);
                                            bool ok1;
                                            qint64 iVal = str.toLongLong(&ok1,16);
                                            ui->lineEdit_2->setText(QString::number(iVal));
                                            QString binnumber = str.setNum(iVal, 2);
                                            ui->lineEdit_3->setText(binnumber);
                                            qDebug()<<"Convert to Int = " << QString::number(iVal);
                                            qDebug()<<"Convert to Binary = " << binnumber;
                                            qDebug()<<"size of string binnumber = " << binnumber.size();
                                            }
                                            //////////////
                                            error now:

                                            /home/ijaz/QT_Final_project/my_push_button_update/mainwindow.cpp:22: error: no matching function for call to ‘QString::number(QString&)’
                                            qDebug()<<"Globle string = " << QString::number(str1);
                                            ^
                                            Selection_034.png

                                            JonBJ 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