Unsolved How to pass String Value in decimal to QlineEdit?
-
@jsulm Hi;
Its giving me value 0 in my lineedit. -
@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...
-
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);
-
@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 -
@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 -
@J-Hilk Hi;
how I can solve this issue? -
@Wasee add c++11 to your compiler call
-
@J-Hilk Hi;
Problem solved but I need little bit change its giving me value 0:108280000, I didn't need 0: in this value how I can remove it. -
@Wasee said in How to pass String Value in decimal to QlineEdit?:
how I can remove it
How about doing what you already did in this thread: use split() method and ':' as split character.
-
@Wasee
the magic happens hereQString str("%1:%2"); str= str.arg(split.at(1).toLongLong(nullptr, 16)).arg(split.at(2).toLongLong(nullptr, 16));
do you see, what is happening?
assuming your result from the external process is of the format
(0xb6f44000):0x11EACAC
like you wrote earlier.
thansplit
will containoutput = output.replace("(", "").replace(")", "").replace(":", ""); auto split = output.split("0x"); // index 0 = "" //index 1 = "b6f44000" //index 2 = "11EACAC"
so depending on what value you want, you want index 1 or 2 therefore
ui->lineedit->setText(QString::number(split.at(index1or2),16);
-
@J-Hilk Hi;
Its giving me index1or2 declaration error here.
thanks -
@Wasee said in How to pass String Value in decimal to QlineEdit?:
index1or2
Come on - this is just a placeholder. You need to replace it with either index1 or index2...
-
@jsulm Hi;
When I placed this code:
/@
ui->lineedit->setText(QString::number(split.at(index1or2),16);
@/Its giving me error again of invalid conversion.
Simply tell me how I can convert it into integer of following external value.
/@jsulm
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));@/
just convert it into integer value. -
@Wasee said in How to pass String Value in decimal to QlineEdit?:
Simply tell me how I can convert it into integer of following external value
You already was told how and @J-Hilk even gave you code.
If it does not work then please be so kind and analyse what happens. This is what a developer should do in such a situation.
What does split.at(index1) or split.at(index2) return? Does it return a string containing a valid hex number?