C++ 将格式化文本显示为QTextEdit,如C';s printf
我想在qttextedit中显示一个双精度文本。例如,如果我有C++ 将格式化文本显示为QTextEdit,如C';s printf,c++,qt,qstring,qtcore,qtextedit,C++,Qt,Qstring,Qtcore,Qtextedit,我想在qttextedit中显示一个双精度文本。例如,如果我有 double f = 0.0; 我也是 ui.textEdit->insertPlainText("f = "+ QString::number(f )); 我明白了 f=0 我想展示一下 f=0.000 我想要多少小数位就有多少 无论如何,我现在无法测试它,但我会尝试ui.textEdit->insertPlainText(QString(“f=%1”).arg(f,5,'g',-1,QLatin1Char('0'))
double f = 0.0;
我也是
ui.textEdit->insertPlainText("f = "+ QString::number(f ));
我明白了
f=0
我想展示一下
f=0.000
我想要多少小数位就有多少
无论如何,我现在无法测试它,但我会尝试
ui.textEdit->insertPlainText(QString(“f=%1”).arg(f,5,'g',-1,QLatin1Char('0'))代码>
有关详细信息,请参阅。您至少有两个Qt选项:
(一)
(二)
构建并运行
输出
您可以始终使用sprintf
。。。但是你可能不应该。@OlehPrypin:不,你不应该,因为QString(Literal)是你在那里的朋友,甚至QString中的sprintf函数也不推荐用于新代码。请阅读我答案中的链接文档。@Programmer:代码不起作用(甚至不会编译),链接可能指向错误的方法。另外,最好使用QStringLiteral。谢谢,Laszlo。。我没有尝试代码。。但你的回答要详细得多
QString result;
double f = 0.000;
result.sprintf("%.3f", f);
ui.textEdit->insertPlainText(result);
double f = 0.000;
QTextStream standardOutput(stdout);
standardOutput << QStringLiteral("f = %1").arg(f, 0, 'f', 3) << "\n";
#include <QString>
#include <QTextStream>
int main()
{
QString result;
double f = 0.000;
result.sprintf("%.3f", f);
QTextStream standardOutput(stdout);
standardOutput << QStringLiteral("f = %1").arg(f, 0, 'f', 3) << "\n";
standardOutput << "f = " << result << "\n";
return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && make && ./main
f = 0.000
f = 0.000