qml 桁数を合わせる QLineEditをReadOnlyのやり方はQString::numbe…

パソコン

Qtで計算結果を表示したりするのに普段QLineEditとかQLabelとかで表示してるんだけど,桁をあわせる(というか小数点の位置を合わせる)方法についていろいろと悩んだのでまとめる。自分はQLineEditをReadOnlyにしてよく数値の表示を行うんだが、そのときのやり方はQString::number()を使って以下のように書いてる。

lineEdit->setText(QString::number(value));

だけど、この数値の表示がいくつか並んだ場合(自分の場合はよくXYZ座標を表示する。)に桁が合わないので常に更新するようなプログラムだと変化がわかりづらいしかっこ悪い。
f:id:wikuba:20111021125153j:image

そこで、QString::number()の第二引数と第三引数を以下のように指定することによって桁合わせをすることができる。

lineEdit->setText(QString::number(value, 'f', 5));

f:id:wikuba:20111021125328j:image
このように第三引数に数点以下の桁数を入れることで表示をそろえている。第二引数は’e’、’E’、’f’、’g’、’G’の5つの値を設定することができ、’e’と’E’は指数表示で表示する。QString::number(10.0345, ‘e’, 5)だと 1.00345e+01 となる(’E’だと 1.00345E+01)。’f’は非指数表示、’g’と’G’は指数表示または非指数表示どちらかが選択される(判断基準は不明)。
注意! ‘g’を指定した場合、桁数が合わない時がある。
というか自分の環境だと第二引数に’g’を指定した場合、桁数が合わなかった。なので’f’を指定することをおススメする。ここに時間取られた。(他のサイトなどではできてるような文章が多いから自分の環境がおかしいのかな?)

 ⬇人気の記事!⬇

タイトルとURLをコピーしました