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 String Value in decimal to QlineEdit?

How to pass String Value in decimal to QlineEdit?

Scheduled Pinned Locked Moved Unsolved General and Desktop
33 Posts 6 Posters 5.6k Views
  • 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.
  • JoeCFDJ Offline
    JoeCFDJ Offline
    JoeCFD
    wrote on last edited by
    #3
    std::string continuous_value =***;
    QString str( QString::fromStdString( continuous_value ) );
    bool ok{ false };
    double or float value = str.toDouble( &ok );
    if ( true == ok ) {
        line edit->setText( QString::number( value ) );
    /* if format is needed */
        line edit->setText( QString( "%1" ).arg( value, some format ) );
    }
    
    1 Reply Last reply
    0
    • WaseeW Offline
      WaseeW Offline
      Wasee
      wrote on last edited by
      #4

      @Christian-Ehrlicher @JoeCFD
      I am reading like this:
      /@
      QProcess Temp_reading;
      Temp_reading.start("sudo devmem2 0x80000000");
      Temp_reading.waitForFinished(-1); // will wait forever until finished
      QString Temp_read = Temp_reading.readAllStandardOutput();

      ui->lineedit->setText(Temp_read);

      //Its giving me value 0x1 in hex format but I need to convert in decimal value and pass to lineedit//

      @/

      JonBJ Christian EhrlicherC 2 Replies Last reply
      0
      • WaseeW Wasee

        @Christian-Ehrlicher @JoeCFD
        I am reading like this:
        /@
        QProcess Temp_reading;
        Temp_reading.start("sudo devmem2 0x80000000");
        Temp_reading.waitForFinished(-1); // will wait forever until finished
        QString Temp_read = Temp_reading.readAllStandardOutput();

        ui->lineedit->setText(Temp_read);

        //Its giving me value 0x1 in hex format but I need to convert in decimal value and pass to lineedit//

        @/

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by
        #5

        @Wasee

        QString str = "0x1";
        bool ok;
        int num = str.toInt(&ok, 0);
        
        1 Reply Last reply
        0
        • WaseeW Wasee

          @Christian-Ehrlicher @JoeCFD
          I am reading like this:
          /@
          QProcess Temp_reading;
          Temp_reading.start("sudo devmem2 0x80000000");
          Temp_reading.waitForFinished(-1); // will wait forever until finished
          QString Temp_read = Temp_reading.readAllStandardOutput();

          ui->lineedit->setText(Temp_read);

          //Its giving me value 0x1 in hex format but I need to convert in decimal value and pass to lineedit//

          @/

          Christian EhrlicherC Online
          Christian EhrlicherC Online
          Christian Ehrlicher
          Lifetime Qt Champion
          wrote on last edited by
          #6

          @Wasee said in How to pass String Value in decimal to QlineEdit?:

          but I need to convert in decimal value and pass to lineedit//

          Then convert it from hex string to a double value and then back to a QString as it's documented in the documentation (link in my first post)

          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
          Visit the Qt Academy at https://academy.qt.io/catalog

          1 Reply Last reply
          0
          • WaseeW Offline
            WaseeW Offline
            Wasee
            wrote on last edited by
            #7

            @Christian-Ehrlicher @JoeCFD @JonB ;
            Thanks to your reply! I follow the following code but get again conversion errors.
            "/@
            QProcess Temp_reading;
            std:: string ct_value=Temp_reading.start("sudo devmem2 0x80000000");
            QString str (QString::fromStdString(ct_value));
            bool okk{false};
            double or float value = str.toDuble(&okk);
            if(true == &okk){
            ui->linedit->setText(QString::number(value));
            }

            Thanks in advance

            jsulmJ 1 Reply Last reply
            0
            • WaseeW Wasee

              @Christian-Ehrlicher @JoeCFD @JonB ;
              Thanks to your reply! I follow the following code but get again conversion errors.
              "/@
              QProcess Temp_reading;
              std:: string ct_value=Temp_reading.start("sudo devmem2 0x80000000");
              QString str (QString::fromStdString(ct_value));
              bool okk{false};
              double or float value = str.toDuble(&okk);
              if(true == &okk){
              ui->linedit->setText(QString::number(value));
              }

              Thanks in advance

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

              @Wasee said in How to pass String Value in decimal to QlineEdit?:

              "sudo devmem2 0x80000000"

              Do you realise that your string contains not only a number but allso non-number string ("sudo devmem2 ")?
              That part of course can't be converted to a number.
              You need first to extract the hex-number part and only convert that part to a number.
              You can use https://doc.qt.io/qt-5/qstring.html#split to split your string using "0x" as separator.

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

              JonBJ 1 Reply Last reply
              0
              • jsulmJ jsulm

                @Wasee said in How to pass String Value in decimal to QlineEdit?:

                "sudo devmem2 0x80000000"

                Do you realise that your string contains not only a number but allso non-number string ("sudo devmem2 ")?
                That part of course can't be converted to a number.
                You need first to extract the hex-number part and only convert that part to a number.
                You can use https://doc.qt.io/qt-5/qstring.html#split to split your string using "0x" as separator.

                JonBJ Offline
                JonBJ Offline
                JonB
                wrote on last edited by JonB
                #9

                @jsulm
                I think you need to clean your reading glasses and try again... ;-)

                The OP is using that string as argument to QProcess::start(), not as the string to parse!

                @Wasee

                QProcess Temp_reading;
                std:: string ct_value=Temp_reading.start("sudo devmem2 0x80000000");
                QString str (QString::fromStdString(ct_value));
                

                void QProcess::start() does not return any value, so this won't compile, will it....

                Can you just slow down a bit. What are you actually trying to do? I can only guess you have in mind:

                Temp_reading.start("sudo devmem2 0x80000000");
                Temp_reading.waitForFinished();
                QString output(Temp_reading.readAllStandardOutput());
                bool ok;
                int num = output.toInt(&ok, 0);
                

                Actually I see you had this earlier. All you needed to do was do the QString::toInt() on what you got back followed by QString::number() to put it into the line edit. And if that is delivering the right answer have a look at the output from the command which you are trying to parse.

                P.S.
                You originally said the number you need to parse is (like) 0x1. I showed you the above code with output.toInt(&ok, 0); is how to do that. If you are using QString::toDouble() as you show that will not work, as it cannot parse a leading 0x.

                WaseeW 1 Reply Last reply
                2
                • WaseeW Offline
                  WaseeW Offline
                  Wasee
                  wrote on last edited by
                  #10

                  @jsulm Hi;
                  I followed following code to split the string
                  /@
                  QString band1_2="sudo devmem2 0x80000000 w 0x";
                  QString str = QStringLiteral("sudo devmem2 0x80000000 w 0x");
                  QStringList list1 = str.split(QLatin1Char('.'));
                  qDebug()<<"Split:"<<list1;
                  @/
                  Its giving me value like "11". But it is not passing to lineedit why? Even I code to convert into integer below.
                  QString list;
                  bool ok;
                  int d;
                  d = Qstring(list).toInt(&ok);
                  ui->lineedit->setText(d);

                  Thanks in advance

                  jsulmJ 1 Reply Last reply
                  0
                  • WaseeW Wasee

                    @jsulm Hi;
                    I followed following code to split the string
                    /@
                    QString band1_2="sudo devmem2 0x80000000 w 0x";
                    QString str = QStringLiteral("sudo devmem2 0x80000000 w 0x");
                    QStringList list1 = str.split(QLatin1Char('.'));
                    qDebug()<<"Split:"<<list1;
                    @/
                    Its giving me value like "11". But it is not passing to lineedit why? Even I code to convert into integer below.
                    QString list;
                    bool ok;
                    int d;
                    d = Qstring(list).toInt(&ok);
                    ui->lineedit->setText(d);

                    Thanks in advance

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

                    @Wasee said in How to pass String Value in decimal to QlineEdit?:

                    QString list;
                    bool ok;
                    int d;
                    d = Qstring(list).toInt(&ok);

                    This does not make sense at all: you create a string from an empty string (list) and then try to convert it to int.

                    Please read once more what I wrote. I never suggested to split using '."

                    But actually you should read what @JonB suggested, as my answer was based on my misunderstanding.

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

                    1 Reply Last reply
                    1
                    • JonBJ JonB

                      @jsulm
                      I think you need to clean your reading glasses and try again... ;-)

                      The OP is using that string as argument to QProcess::start(), not as the string to parse!

                      @Wasee

                      QProcess Temp_reading;
                      std:: string ct_value=Temp_reading.start("sudo devmem2 0x80000000");
                      QString str (QString::fromStdString(ct_value));
                      

                      void QProcess::start() does not return any value, so this won't compile, will it....

                      Can you just slow down a bit. What are you actually trying to do? I can only guess you have in mind:

                      Temp_reading.start("sudo devmem2 0x80000000");
                      Temp_reading.waitForFinished();
                      QString output(Temp_reading.readAllStandardOutput());
                      bool ok;
                      int num = output.toInt(&ok, 0);
                      

                      Actually I see you had this earlier. All you needed to do was do the QString::toInt() on what you got back followed by QString::number() to put it into the line edit. And if that is delivering the right answer have a look at the output from the command which you are trying to parse.

                      P.S.
                      You originally said the number you need to parse is (like) 0x1. I showed you the above code with output.toInt(&ok, 0); is how to do that. If you are using QString::toDouble() as you show that will not work, as it cannot parse a leading 0x.

                      WaseeW Offline
                      WaseeW Offline
                      Wasee
                      wrote on last edited by
                      #12

                      @JonB Hi;
                      How I can resolve problem i didn't understand.Please write piece of code.
                      thanks

                      jsulmJ 1 Reply Last reply
                      0
                      • WaseeW Wasee

                        @JonB Hi;
                        How I can resolve problem i didn't understand.Please write piece of code.
                        thanks

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

                        @Wasee said in How to pass String Value in decimal to QlineEdit?:

                        .Please write piece of code

                        He already did.
                        What is not clear?

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

                        1 Reply Last reply
                        1
                        • WaseeW Offline
                          WaseeW Offline
                          Wasee
                          wrote on last edited by
                          #14

                          @jsulm ;
                          Thanks!
                          But I am getting error of invalid conversion from int to const string for lineedit.

                          ui->lineedit->setText(num);

                          jsulmJ 1 Reply Last reply
                          0
                          • WaseeW Wasee

                            @jsulm ;
                            Thanks!
                            But I am getting error of invalid conversion from int to const string for lineedit.

                            ui->lineedit->setText(num);

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

                            @Wasee Do you understand that setText expects a string, not int?

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

                            1 Reply Last reply
                            3
                            • WaseeW Offline
                              WaseeW Offline
                              Wasee
                              wrote on last edited by
                              #16

                              Hi; everyone;
                              I am unable to fix my problem. Please provide exact information to do that.

                              jsulmJ 1 Reply Last reply
                              0
                              • WaseeW Wasee

                                Hi; everyone;
                                I am unable to fix my problem. Please provide exact information to do that.

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

                                @Wasee said in How to pass String Value in decimal to QlineEdit?:

                                Please provide exact information to do that

                                I will do once more your work, but last time now. I will not spend more of my time if you refuse to learn basics.
                                Go to https://doc.qt.io/qt-5/qlineedit.html#text-prop and check what the type is.
                                Type is QString.
                                C++ most basic knowledge: QString != int.
                                So, you can't pass an int as parameter to QLineEdit::setText, because setText() expects a QString.
                                I really fail to understand what is not clear about it?!
                                Maybe you should read a C++ book?

                                Temp_reading.start("sudo devmem2 0x80000000");
                                Temp_reading.waitForFinished();
                                QString output(Temp_reading.readAllStandardOutput());
                                ui->lineedit->setText(output);
                                

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

                                1 Reply Last reply
                                1
                                • WaseeW Offline
                                  WaseeW Offline
                                  Wasee
                                  wrote on last edited by
                                  #18

                                  @jsulm Hi;
                                  Its giving me Values continuous but I need to print these values after 0x in integer form in line-edit.
                                  (0xb6f44000):0x11EACAC
                                  (0xb6efe00):0x11EACAC
                                  (0xb6fd4000):0x11EACAC
                                  (0xb6fde000):0x11EACAC

                                  jsulmJ 1 Reply Last reply
                                  0
                                  • WaseeW Wasee

                                    @jsulm Hi;
                                    Its giving me Values continuous but I need to print these values after 0x in integer form in line-edit.
                                    (0xb6f44000):0x11EACAC
                                    (0xb6efe00):0x11EACAC
                                    (0xb6fd4000):0x11EACAC
                                    (0xb6fde000):0x11EACAC

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

                                    @Wasee What's wrong with https://doc.qt.io/qt-5/qstring.html#number-1?

                                    d = Qstring(list).toInt(&ok, 16); // Since you handle hex numbers you need to tell toInt that it is a hex number - so pass 16 as base
                                    ui->lineedit->setText(QString::number(d));
                                    

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

                                    1 Reply Last reply
                                    1
                                    • WaseeW Offline
                                      WaseeW Offline
                                      Wasee
                                      wrote on last edited by
                                      #20

                                      @jsulm Hi;
                                      Its giving me value 0 in my lineedit.

                                      jsulmJ 1 Reply Last reply
                                      0
                                      • WaseeW Wasee

                                        @jsulm Hi;
                                        Its giving me value 0 in my lineedit.

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

                                        @Wasee That means that the conversion from string to int failed. I'm now out of this thread. Debug your code to see what happens and fix the issues...

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

                                        1 Reply Last reply
                                        0
                                        • J.HilkJ Offline
                                          J.HilkJ Offline
                                          J.Hilk
                                          Moderators
                                          wrote on last edited by
                                          #22
                                          Temp_reading.start("sudo devmem2 0x80000000");
                                          Temp_reading.waitForFinished();
                                          QString output(Temp_reading.readAllStandardOutput());
                                          output = output.replace("(", "").replace(")", "").replace(":", "");
                                          auto split = output.split("0x");
                                          QString str("%1:%2");
                                          str= str.arg(split.at(1).toLongLong(nullptr, 16)).arg(split.at(2).toLongLong(nullptr, 16));
                                          ui->lineedit->setText(str);
                                          

                                          alt text


                                          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

                                          • Login

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