How to pass String Value in decimal to QlineEdit?
-
@jsulm ;
Thanks!
But I am getting error of invalid conversion from int to const string for lineedit.ui->lineedit->setText(num);
-
@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);
-
@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@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));
-
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;
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.
-
@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
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);
-
@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. -
@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?