我有一个LineEdit,希望它显示一个float值。我希望float值具有2位数的精度,所以我使用了如下数字函数:

float tax =  value * 0.23;
Qstring strTax = QString::number(tax, 'f', 2);
qDebug() << strTax;
ui->leTax->setText(strTax);


事实是,在控制台中,该值以2位数的精度打印,而该小部件将打印可能为3或更多(取决于值)的所有十进制数字。有办法解决吗?我正在使用Qt 5.0。

最佳答案

因此,这是公认的答案。我终于解决了我的问题。 onTextUpdate必须再更新两个LineEdits,一个包含Tax,另一个包含Total。但是包含totalAmount的那个也发出了onTextChanged来更新净值和Tax LineEdits,而没有四舍五入这些值(我很粗心!!)。因此,我更正了totalAmountonTextChanged。我还更新了它以检查它是否具有焦点,以便知道是否该轮到更新其他LineEdits了:)。关键是有人可以编辑netValue行编辑,这将更新税额和总金额,或者有人输入totalAmount,并自动更新净额和税额字段。现在一切正常。谢谢大家的回答!

08-05 12:20