Qt Lang环境?

时间:2014-05-21 15:52:38

标签: c++ qt c++11 qtcore qcoreapplication

执行以下代码时,我遇到了有关Qt Locale环境的问题

QApplication(argc,argv) ;
float f = 42.5f
std::cout << std::to_string(f) ; // prints 42,5

即使我的计算机将其语言环境设置为法语,我也希望我的程序能够使用标准打印格式(即42.5)进行编译。有没有办法用编译器选项来做到这一点?

1 个答案:

答案 0 :(得分:0)

这对我来说很好用:

的main.cpp

#include <QString>
#include <QDebug>
#include <QCoreApplication>
#include <QLocale>

int main(int argc, char **argv)
{
    QCoreApplication coreApplication(argc, argv);
    float f = 42.5f;
    qDebug() << QString::number(f, 'f', 1);
    QLocale locale;
    qDebug() << locale.toString(f, 'f', 1);
    return coreApplication.exec();
}

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

构建并运行

qmake && make && ./main

输出

"42.5"
"42.5"

这对你来说很有意思:

  

QString QString::number(double n, char format = 'g', int precision = 6) [static]

     

返回等价于n的字符串,根据指定的格式和精度进行格式化。有关详细信息,请参阅参数格式。

     

与QLocale :: toString()不同,此函数不支持用户的语言环境设置。