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?
Forum Updated to NodeBB v4.3 + New Features

How to pass String Value in decimal to QlineEdit?

Scheduled Pinned Locked Moved Unsolved General and Desktop
33 Posts 6 Posters 5.0k 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.
  • 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 Online
    JonBJ Online
    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 Online
            JonBJ Online
            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
                                      • WaseeW Offline
                                        WaseeW Offline
                                        Wasee
                                        wrote on last edited by
                                        #23

                                        @J-Hilk Hi;
                                        I am still getting error "split does not name a type" and "split is not declare in this scope" and "nullptr was not declared in this scope"
                                        thanks

                                        J.HilkJ 1 Reply Last reply
                                        0
                                        • WaseeW Wasee

                                          @J-Hilk Hi;
                                          I am still getting error "split does not name a type" and "split is not declare in this scope" and "nullptr was not declared in this scope"
                                          thanks

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

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

                                          "nullptr was not declared in this scope"

                                          impossible if you're using c++11 or later !

                                          split does not name a type

                                          either you forgot auto or you're really not using c++11. Split it is of type QStringList


                                          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
                                          0

                                          • Login

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