我剛開始使用 QT 語言。當我嘗試向其附加一個字符 10 次時發生了一個奇怪的錯誤。它會重置并重新開始。有誰知道解決方案?
QString tempLabel = "0";
void MainWindow::AppendToLabel(int s){
//QString LabelText = ui->displayText->text();
//testCase
QString LabelText = tempLabel;
// Updates the label acording to the button
if(tempLabel.toInt() == 0)
{
// If the Number 0 present in the label - Rplace it
LabelText = QString::number(s);
}
else
{
// If not not - Append it to the label
LabelText.append(QString::number(s));
}
double apendedNumber = LabelText.toDouble();
qDebug() << LabelText;
tempLabel = LabelText;
//ui->displayText->setText(LabelText);
}
當我附加第 11 個字符時,它會替換整個字串,而不是將其附加到現有字串。
uj5u.com熱心網友回復:
一個 32 位整數值的最大值為2^31 - 1, 或2147483647,恰好是 10 位長。因此,在呼叫toInt().
QString s = "12345678901"
qDebug() << s.toInt(); // prints '0'
uj5u.com熱心網友回復:
任何QString值的大小上限為4GB。你應該在你的代碼中找到一個錯誤......
QString::toInt()并且QString::toDouble()可以回傳零,如果它不能轉換,設定一個布爾引數,以檢查是這樣的成功轉換
bool flag;
int v = tempLabel.toInt(&flag);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/329662.html
上一篇:fgets無法在Ubuntu20.04上從管道讀取兩次
下一篇:回傳c型別陣列的迭代器?
