我正在尝试更改QLocale
代码中变量的默认语言,然后使用每种语言的不同分隔符。我不想为整个系统更改它我只想有机会打印具有不同组和小数分隔符的数字。用户可以将小数分隔符更改为他或她喜欢的。
//this part works as expected in debugger
QLocale locale;
if(decSep==".")
{
locale.setDefault(QLocale::English);
}
else if(decSep==",")
{
locale.setDefault(QLocale::German);
}
else
{
locale.setDefault(QLocale::system().language());
}
//added for debug purposes
/*if(local.language()==QLocale::English)
{
int x=0;//jumped here when it was supposed to do so (decSep==".")
}*/
现在有一些代码我确信与这个错误无关。后来我用:
//Now this doesn't work
QString tempNum1 = locale.toString(myNum, 'f');
有了locale.toString
我,分隔符默认为给定的语言。
现在我的问题是语言环境变量似乎需要一些时间或技巧才能更改为其他设置。当我更改decSep
var 并因此更改语言时(我对此进行了调试,这部分已更改,当我要求提供正确枚举的语言时)它使用先前设置的设置。当我再次调用该函数时,它给了我tempNum1
字符串然后它正在工作。
这是一个已知问题还是我做错了什么?我可以以某种方式更新语言环境或类似的东西吗?