という2回目にのみ動作します。コード内の変数QLocale
のデフォルト言語を変更し、各言語の異なる区切り文字を使用しようとしています。私は全体のシステムのためにそれを変更する必要はありません私はちょうど別のグループと小数の区切り文字を印刷する機会を持っているしたいと思います。 ユーザーは小数点記号を好きなものに変更できます。QLocale setDefaultは、
//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==".")
}*/
ここでは、このエラーとは関係のないコードがいくつかあります。 その後、私が使用します。
locale.toString
で
//Now this doesn't work
QString tempNum1 = locale.toString(myNum, 'f');
私は特定の言語にセパレータのデフォルトを取得します。
今、私の問題は、ロケール変数が他の設定に変更するには時間がかかります。 decSep
varを変更すると言語が変更されます(私はこれをデバッグしました。この部分はに変更されています)。関数を呼び出すと、tempNum1
の文字列が返されます。
これは既知の問題ですか、間違っていますか?どういうわけかロケールなどを更新できますか?