13,160
回編集
| 325行目: | 325行目: | ||
<br><br> | <br><br> | ||
== | == その他の変換 == | ||
以下の例では、数値が整数の場合はそのまま<code>QString</code>クラスへ変換、数値に小数点が含まれている場合は小数点以下を除去して<code>QString</code>クラスへ変換する関数である。<br> | |||
<br> | |||
<code>QVariant</code>クラスは、多くの異なるデータ型を格納することができる。<br> | |||
この柔軟性により、整数型だけでなく浮動小数点型等の様々な数値型をこの関数に渡すことが可能となる。<br> | |||
<syntaxhighlight lang="c++"> | |||
#include <QCoreApplication> | |||
#include <QVariant> | |||
#include <cmath> | |||
QString convertNumberToString(const QVariant &value) | |||
{ | |||
if (value.type() == QVariant::Int || value.type() == QVariant::LongLong) { | |||
// 数値が整数の場合 | |||
return value.toString(); | |||
// 戻り値が整数型の場合 | |||
//return value.toInt(); | |||
} | |||
else if (value.type() == QVariant::Double) { | |||
// 数値が浮動小数点の場合 | |||
double number = value.toDouble(); | |||
// 戻り値がQStringクラスの場合、小数点以下を切り捨て | |||
double intPart; | |||
std::modf(number, &intPart); | |||
return QString::number(intPart, 'f', 0); // 'f'フォーマットと0桁で小数点以下を除去 | |||
// 戻り値が整数型の場合 | |||
//return static_cast<int>(std::floor(number)); | |||
} | |||
// その他の型の場合は空のQStringを返す | |||
return QString(); | |||
// 戻り値が整数型の場合、その他の型の場合は0を返す | |||
//return 0; | |||
} | |||
int main(int argc, char *argv[]) | |||
{ | |||
QCoreApplication app(argc, argv); | |||
// 整数を渡す例 | |||
QVariant intValue = 42; | |||
QString intResult = convertNumberToString(intValue); | |||
std::cout << QString("整数の結果 : %1").arg(intResult).toStdString() << std::endl; // "42"と表示 | |||
// 浮動小数点数を渡す例 | |||
QVariant floatValue = 42.56; | |||
QString floatResult = convertNumberToString(floatValue); | |||
std::cout << QString("浮動小数点数の結果(小数点以下除去) : %1").arg(floatResult).toStdString() << std::endl; // "42"と表示 | |||
return app.exec(); | |||
} | |||
</syntaxhighlight> | |||
<br><br> | |||
== QStringListクラス == | |||
==== 特定の要素の確認 ==== | ==== 特定の要素の確認 ==== | ||
<code>QStringList</code>クラスの要素群の中に特定の要素が存在する場合、<code>contains</code>メソッドを使用する。<br> | <code>QStringList</code>クラスの要素群の中に特定の要素が存在する場合、<code>contains</code>メソッドを使用する。<br> | ||