【问题标题】:QLocale, what is the scope of the global QLocale::setDefault()?QLocale,全局 QLocale::setDefault() 的作用域是什么?
【发布时间】:2010-07-23 17:44:48
【问题描述】:

问题:

  • 我有一个基于 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));

足以摆脱所有这些问题吗? 对全局设置语言环境的便携方式有什么建议吗?

【问题讨论】:

    标签: c++ qt localization locale


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多