QLocale,全局QLocale :: setDefault()的范围是什么?

时间:2010-04-06 13:51:01

标签: c++ qt localization locale

问题:

  • 我有一个基于QT的多平台(win,mac,* nix)应用程序,它解析包含十进制数字的ascii文件。

  • 使用各种不同的代码片段完成解析,这些代码片段使用来自qt string stuff,c ++ stdin,oldstyle scanf等的任何内容。

  • ascii文件始终是'。' (点)作为分隔的十进制(例如,在要解析的文件中,在许多国家/地区,将1/10写为0.1)。

  • 在本地操作系统中使用该应用程序的人使用逗号分隔十进制会遇到很多问题(例如,对于法国用户,scanf期望找到0,1作为1/10的有效文本表示,如果他们找到0.1 scanf将其解析为0)

如何确保始终忽略必须写入小数点的操作系统区域设置指示?

假设添加

是否安全
 QLocale::setDefault(QLocale(QLocale::English,QLocale::UnitedStates));

足以摆脱所有这些问题? 是否有关于在全球范围内设置区域设置的便携方法的建议?

1 个答案:

答案 0 :(得分:1)

是的,这应该足够了,因为这意味着在没有参数的情况下创建QLocale的任何地方都会使用美国英语。范围是应用程序(QApplication)。